我正在比较2张图片,并希望标记差异并将其保存在新文件中。
(Python 2.7 + Windows)
我正在做的事情如下:
from PIL import Image
from PIL import ImageChops
from PIL import ImageDraw
file1 = 'Animal Nov 2014.jpg'
file2 = ' Animal May 2014.jpg'
im1 = Image.open(file1)
im2 = Image.open(file2)
diff = ImageChops.difference(im1, im2).getbbox()
draw = ImageDraw.Draw(im2)
draw.rectangle(diff)
im2.save('file3.jpg')
当我将其保存到'file3.jpg'时,它会出错:
IOError: cannot write mode P as JPEG
当我将其保存到'file3.png'时,它会出错:
TypeError: an integer is required
如何将其保存到新文件中?感谢。
请参阅PIL (Image) ValueError: Not a valid number of quantization tables. Should be between 1 and 4
上的解决方案答案 0 :(得分:2)
答案可以在这个帖子中找到:Getting "cannot write mode P as JPEG" while operating on JPG image
您需要将图像转换为RGB模式。
在你的情况下:
im2.convert('RGB').save('file3.jpg')