PIL을 사용하여 이미지를 자르는 방법은 무엇입니까?
지정된 이미지에서 처음 30행과 마지막 30행을 제거하여 이미지를 잘라내고자 합니다.저는 검색해봤지만 정확한 해결책을 얻지 못했습니다.누가 제안 좀 해주시겠어요?
방법이 있습니다.
w, h = yourImage.size
yourImage.crop((0, 30, w, h-30)).save(...)
이를 위해 PIL(필로우)을 가져와야 합니다.크기가 1200, 1600인 이미지가 있다고 가정합니다.이미지를 400, 400에서 800, 800으로 자를 것입니다.
from PIL import Image
img = Image.open("ImageName.jpg")
area = (400, 400, 800, 800)
cropped_img = img.crop(area)
cropped_img.show()
(좌, 상, 우, 하)는 두 점을 의미합니다.
- (왼쪽, 위쪽)
- (오른쪽, 아래)
800x600 픽셀 이미지의 경우 이미지의 왼쪽 상단 지점은 (0, 0), 오른쪽 하단 지점은 (800, 600)입니다.
영상을 반으로 잘라내는 경우:
from PIL import Image
img = Image.open("ImageName.jpg")
img_left_area = (0, 0, 400, 600)
img_right_area = (400, 0, 800, 600)
img_left = img.crop(img_left_area)
img_right = img.crop(img_right_area)
img_left.show()
img_right.show()
Python Imaging Library는 왼쪽 상단 모서리에 (0,0)이 있는 데카르트 픽셀 좌표계를 사용합니다.좌표는 암시된 픽셀 모서리를 나타냅니다. (0, 0)로 지정된 픽셀의 중심은 실제로 (0.5, 0.5)에 있습니다.
좌표는 일반적으로 2-튜플(x, y)로 라이브러리에 전달됩니다.직사각형은 4-튜플로 표시되며 왼쪽 위 모서리가 먼저 표시됩니다.예를 들어, 800x600 픽셀 이미지를 모두 덮는 직사각형은 (0, 0, 800, 600)으로 기록됩니다.
더 쉬운 방법은 ImageOps의 자르기를 사용하는 것입니다.각 면에서 자를 픽셀 수를 입력할 수 있습니다.
from PIL import ImageOps
border = (0, 30, 0, 30) # left, top, right, bottom
ImageOps.crop(img, border)
언급URL : https://stackoverflow.com/questions/9983263/how-to-crop-an-image-using-pil
'programing' 카테고리의 다른 글
아파치 포이는 다른 워크북에 한 가지 스타일을 적용합니다. (0) | 2023.06.13 |
---|---|
Excel VBA - *word*까지 문자열 내용 삭제 (0) | 2023.06.13 |
MYSQL / Mariadb 세션 변수에 대한 REVOKE 'SET' 권한 (0) | 2023.06.13 |
표본 데이터에서 신뢰 구간 계산 (0) | 2023.06.13 |
Numpy 어레이를 Disk에 보존하는 가장 좋은 방법 (0) | 2023.06.08 |