在Google App Engine中的Python,如何检测JPEG是否使用CMYK颜色空间并将其转换为RGB?

3
在 Google App Engine 中的 Images API 在应用转换时似乎无法正确处理 CMYK JPEG 图像。在生产服务器上,生成的图像看起来过于淡化,在开发服务器上(GAE 使用 PIL),生成的图像则更暗、更模糊。
看起来 API 假定所有 JPEG 文件都是 RGB 格式。
是否有办法在 Google App Engine 上检测 CMYK 图像?
是否有办法将图像转换为 RGB 格式?
1个回答

3

JPEG可以指格式标准JIF,以及最广泛使用的符合实现JFIF

不幸的是,Images API没有为检测或转换使用Adobe基于CMYK的格式编码的JPEG提供文档支持。从技术上讲,这些是有效的JPEG,但该格式的支持似乎非常有限。

hachoir-parser通过解析二进制流支持检测CMYK JPEGs。只要它是纯Python,它应该可以在App Engine上工作。

您可以在App Engine问题跟踪器中请求Images API的官方支持。


我已经在问题跟踪器上请求支持,以便检测CMYK图像。由于这是一个兴趣较低的功能请求,我预计它不会被添加,或者至少不会很快被添加,除非它真的很容易实现。我将不得不寻找替代方案,比如hachoir-parser。我希望有一种简单的方法可以检测CMYK而不使用大型外部库。谢谢。 - Bryce Cutt
除了让您通过向用户显示错误来拒绝CMYK图像外,Hachoir不会提供任何帮助,因为无法让Images API尊重颜色空间(不过了解Hachoir还是很方便的!) - Anentropic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接