PIL Image can't open png file with "I"?
Fredrik Lundh
fredrik at pythonware.com
Sat Oct 8 05:12:05 EDT 2005
"James Hu" wrote:
> I have png file with mode "I", 16 bit,
> And I tried to open it with im=Image.open("output.png"), im.show()
> I got all white image.
> Don't why?
because all of the PNG file are larger than 255 ?
show doesn't support 16-bit images, so it clamps the values down to
an 8-bit range. adding a
print im.getextrema()
will tell you what values you have in the image (it returns min and max).
to scale things down before you display it, you can use something like:
im = im.point(lambda x: x*(1.0/256))
or
lo, hi = im.getextrema()
if lo == hi:
im = im.point(lambda x: 128) # or something
else:
scale = 255.0 / (hi - lo)
offset = -lo * scale + 0.5
im = im.point(lambda x: x*scale + offset)
</F>
More information about the Python-list
mailing list