首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有CMYK颜色空间的Delphi XE和JPG (检测和/或转换)

带有CMYK颜色空间的Delphi XE和JPG (检测和/或转换)
EN

Stack Overflow用户
提问于 2014-09-14 11:03:29
回答 2查看 999关注 0票数 1

简短的版本:有没有任何简单的方法来找出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,我就不用处理太多的外部问题了……

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-23 12:25:25

我们已经将解决方案缩小到三种:

  • 我们自己解析JPEG -这似乎很危险。
  • 稍微修改一下德尔福的jpeg.pas (更改类的名称并公开CMYK )--这似乎是可行的选择,但我们不确定它是否版权确定,而且由于jpeg.pas大量使用OBJ,这在将来可能无法在其他平台上使用。
  • 使用第三方库,我们找到了NativeJPG http://www.simdesign.nl/nativejpg.html,它似乎做得很好,应该用纯Pascal编写,所以我们认为如果需要的话很容易移植到其他平台。
票数 1
EN

Stack Overflow用户

发布于 2014-09-14 20:53:52

一个简单的方法,可能将工作几乎所有的时间是搜索图像的SOF (开始帧)标记。

如果该标记有1个组件,则图像为灰度;如果有3个组件,则可能是YCbCr;如果有4个组件,则可能是CMYK。

如果您想要一个更可靠的方法,您需要识别JPEG文件格式。为此,您将阅读APPn标记。从那里开始,处理将取决于找到的文件类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25832563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档