如何在 Python 中转换和保存 16 位单通道 TIF?
我可以毫无问题地加载 16 位和 32 位图像,并看到 32 位图像是模式F
,而 16 位图像是模式I;16S
:
import Image
i32 = Image.open('32.tif')
i16 = Image.open('16.tif')
i32
# <TiffImagePlugin.TiffImageFile image mode=F size=2000x1600 at 0x1098E5518>
i16
# <TiffImagePlugin.TiffImageFile image mode=I;16S size=2000x1600 at 0x1098B6DD0>
但我无法使用 16 位图像。如果我想保存为 PNG,我不能直接这样做:
i32.save('foo.png')
# IOError: cannot write mode F as PNG
i16.save('foo.png')
# ValueError: unrecognized mode
如果我转换 32 位图像,我可以保存它:
i32.convert('L').save('foo.png')
但相同的命令不适用于 16 位图像:
i16.convert('L').save('foo.png')
# ValueError: unrecognized mode