gpt4 book ai didi

Python PIL 不正确地解码 TIFF 颜色(使用不正确的颜色空间)?

转载 作者:太空狗 更新时间:2023-10-29 17:33:15 25 4
gpt4 key购买 nike

当我使用 PIL==1.1.7 加载 TIFF 图像时,似乎颜色空间错误:

bad colorspace conversion

这是怎么回事?

  • .tiff 是使用 convert test.jpg test.tiff 创建的(但似乎也适用于其他 tiff 文件)
  • 可在以下位置找到:http://hul.wolever.net/dump/test.tiff
  • PIL.Image.DEBUG = True 时的输出:
>>> from PIL import Image>>> Image.DEBUG = True>>> Image.open("/tmp/test.tiff").show()tag: ImageWidth (256) - type: short (3) - value: (560,)tag: ImageLength (257) - type: short (3) - value: (401,)tag: BitsPerSample (258) - type: short (3) - value: (8, 8, 8)tag: Compression (259) - type: short (3) - value: (7,)tag: PhotometricInterpretation (262) - type: short (3) - value: (2,)tag: FillOrder (266) - type: short (3) - value: (1,)tag: DocumentName (269) - type: ascii (2) - value: /tmp/lemur.tifftag: StripOffsets (273) - type: long (4) - value: (8, 9282, 18712, 28312, 38000, 48730, 59052, 70406, 83010, 95978, 108967, 121029, 133136, 145555, 157411, 168289, 179433, 191157, 202954, 214664, 226914, 238919, 250547, 261871, 273282, 284453)tag: Orientation (274) - type: short (3) - value: (1,)tag: SamplesPerPixel (277) - type: short (3) - value: (3,)tag: RowsPerStrip (278) - type: short (3) - value: (16,)tag: StripByteCounts (279) - type: long (4) - value: (9274, 9430, 9600, 9688, 10730, 10322, 11354, 12604, 12968, 12989, 12062, 12107, 12419, 11856, 10878, 11144, 11724, 11797, 11710, 12250, 12005, 11628, 11324, 11411, 11171, 2541)tag: XResolution (282) - type: rational (5) - value: ((1207959552, 16777216),)tag: YResolution (283) - type: rational (5) - value: ((1207959552, 16777216),)tag: PlanarConfiguration (284) - type: short (3) - value: (1,)tag: ResolutionUnit (296) - type: short (3) - value: (1,)tag: PageNumber (297) - type: short (3) - value: (0, 1)tag: JPEGTables (347) - type: undefined (7) - value: ????C?????}!1AQa"q2??#B??R??$3br?  %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz???????????????????????????????????????????????????????????????????????????tag: YCbCrSubSampling (530) - type: short (3) - value: (2, 2)*** Summary ***- compression: jpeg- photometric_interpretation: 2- planar_configuration: 1- fill_order: 1- size: (560, 401)format key: ('II', 2, 1, 1, (8, 8, 8), ())- raw mode: RGB- pil mode: RGB

最佳答案

这很可能是因为您的 TIFF 图像包含由 Adob​​e Photoshop 生成的压缩 JPEG 数据,它使用特殊标记来指示正确的色彩空间。我猜 PIL 不知道这个标记(至少,在 TIFF 嵌入的 JPEG 中),所以它假设图像在 YCbCr 色彩空间中(我们可以在屏幕截图上看到)。

查看详细答案here ,我相信这正是您的情况。

可能的解决方案是使用其他方法(不使用压缩的 JPEG 数据)转换 JPEG。例如,如果 PIL 设法正确打开你的 JPEG,你可以用 PIL 重写 TIFF:

from PIL import Image
img = Image.open("test.jpg")
tif = Image.new("RGB", img.size)
tif.paste(img)
tif.save('result.tiff')

关于Python PIL 不正确地解码 TIFF 颜色(使用不正确的颜色空间)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12900656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com