Python PIL裁剪问题:裁剪图像的颜色拧紧

时间:2009-05-06 16:07:18

标签: python image-processing colors python-imaging-library crop

我对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

and the output

正如您所看到的,输出的颜色完全搞砸了......

提前感谢您的帮助!

-Hoff

3 个答案:

答案 0 :(得分:4)

output应该是文件名,而不是处理程序。

答案 1 :(得分:3)

而不是

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

只是做

area.save('cropped_football.jpg')

答案 2 :(得分:1)

由于对save的调用实际上产生了输出,我必须假设PIL能够交替使用文件名或打开文件。问题出在文件模式,默认情况下会尝试根据文本约定进行转换 - 在Windows上,'\ n'将替换为'\ r \ n'。您需要以二进制模式打开文件:

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

P.S。我测试了这个并且它有效:

enter image description here