我正在使用 PIL 处理图像。当我打开一些图像并将其转换为 RGBA 时,它们会完全恶化。
此类图像的一个示例如下:
转换后我得到以下信息:
我运行以下代码。
from PIL import Image
img = Image.open("input_image.png")
img_rgba = img.convert("RGBA")
img_rgba.save("output_image.png")
我希望输出图像看起来像输入图像。
您的原始图像是 16 位灰度图像。如果打印图像,您可以看到:
im = Image.open(...)
print(im)
您会看到它处于 I 模式,即 32 位,因为这是 PIL 用于 16 位图像的模式。
<PIL.PngImagePlugin.PngImageFile image mode=I size=502x1180>
您还可以使用
exiftool
看到这一点,如果您运行:
exiftool YOURIMAGE
当您将其转换为 RGBA 模式时,PIL 会将其转换为 RGBA8888 - 即 4 个通道,每个通道 8 位,并且您会丢失数据。