문제

나는 Pil의 작물 기능에 매우 기본적인 문제가있을 것입니다. 자른 이미지의 색상은 완전히 망가졌습니다. 코드는 다음과 같습니다.

>>> from PIL import Image
>>> img = Image.open('football.jpg')
>>> img
<PIL.JpegImagePlugin.JpegImageFile instance at 0x00
>>> img.format
'JPEG'
>>> img.mode
'RGB'
>>> box = (120,190,400,415)
>>> area = img.crop(box)
>>> area
<PIL.Image._ImageCrop instance at 0x00D56328>
>>> area.format
>>> area.mode
'RGB'
>>> output = open('cropped_football.jpg', 'w')
>>> area.save(output)
>>> output.close()

원본 이미지 : enter image description here

그리고 출력.

보시다시피, 출력의 색상은 완전히 엉망입니다 ...

도움을 주셔서 감사합니다!

-Hoff

도움이 되었습니까?

해결책

output 핸들러가 아닌 파일 이름이어야합니다.

다른 팁

대신에

output = open('cropped_football.jpg', 'w')
area.save(output)
output.close()

그냥 해

area.save('cropped_football.jpg')

전화 이후 save 실제로 출력을 생성하려면 PIL이 파일 이름이나 열린 파일을 서로 바꿔서 사용할 수 있다고 가정해야합니다. 문제는 파일 모드에 있으며, 기본적으로 텍스트 규칙에 따라 변환하려고 시도합니다. ' n'은 Windows의 ' r n'으로 대체됩니다. 이진 모드에서 파일을 열어야합니다.

output = open('cropped_football.jpg', 'wb')

추신 나는 이것을 테스트했고 그것은 작동한다.

enter image description here

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top