简短的版本:有没有任何简单的方法来找出JPG文件是CMYK还是RGB在Delphi中?最好没有其他图书馆..。
更长的版本:我有一个第三方库,接受JPEG。但是不管出于什么原因,库需要知道它们是在CMYK还是RGB colorspace中。更糟糕的是,它让CMYK的颜色变错了(可能是CMS之类的)。Delphi本身(TJPEGImage)正确地显示了CMYK图像,但是似乎所有的"CMYK内容“都隐藏在jpeg.pas实现部分,并且没有发布.
我在网上搜索了很多东西,但在这里我只找到了几个有年头的帖子。此外,我已经找到加布里埃尔·考尼努的修改后的jpeg.dcu,但这都是为了让Delphi正确地加载图像。而且看起来XE确实正确地加载了CMYK JPEG。
最后,我更愿意将CMYK图像转换为RGB,即使听起来很可怕,我也不介意对JPEG进行编码(如果没有其他更好的选项)。基本上将其加载到位图中,如果需要的话将位图保存为JPEG格式.
我想尽量避免把另一个库带到我的项目中,我希望尽可能多地保持在“标准德尔菲”的范围内,所以如果我需要将这个项目转移到Mac、iOS或Android,我就不用处理太多的外部问题了……
发布于 2014-09-23 12:25:25
我们已经将解决方案缩小到三种:
发布于 2014-09-14 20:53:52
一个简单的方法,可能将工作几乎所有的时间是搜索图像的SOF (开始帧)标记。
如果该标记有1个组件,则图像为灰度;如果有3个组件,则可能是YCbCr;如果有4个组件,则可能是CMYK。
如果您想要一个更可靠的方法,您需要识别JPEG文件格式。为此,您将阅读APPn标记。从那里开始,处理将取决于找到的文件类型。
https://stackoverflow.com/questions/25832563
复制相似问题