2

Here in this code I am taking difference of two same resolution PNG images ,then saving the difference,. Saving in JPEG works fine but in PNG, it produces a total tranparent PNG image file. look at the comments in the last two lines

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]
4

1 回答 1

4

Perhaps your original images have an alpha channel (RGBA), you should know that beforehand, and/or check the result the image type that Image.open produces (looking at Image.mode or Image.info). Anyway, you can force the RGB type (no alpha channel) by calling <image>.convert('RGB'), before or after doing the difference.

于 2013-03-31T13:48:24.987 回答