在这段代码中,我将两个相同分辨率的PNG图像区别开来,然后保存差异。保存为JPEG工作正常,但在PNG中,它产生一个完全透明的PNG图像文件。看看最后两行的评论
import Image
import ImageChops
js_black_im = Image.open("/js_black.png")
js_white_im = Image.open("/fb_white.png")
diff_im = ImageChops.difference(js_black_im, js_white_im)
diff_im.save("/js_onlytext.jpeg", "JPEG") #this works as expected
diff_im.save("/js_onlytext.png", "PNG") #this produces a total tranparent PNG image file![js_black.png][1]![fb_black.png][2]
答案 0 :(得分:2)
也许您的原始图像具有Alpha通道(RGBA),您应该事先知道,和/或检查结果Image.open生成的图像类型(查看Image.mode
或Image.info
) 。无论如何,你可以在做差异之前或之后通过调用<image>.convert('RGB')
来强制RGB类型(没有alpha通道)。