如何用delphi代码检测一张jpeg图片是RGB色彩还是CMYK色彩?
查了很久都没有找到解决办法,估计这个问题比较难,如果有人能帮我解决我愿再给200分以示敬意!

解决方案 »

  1.   

    一般来说是不能区分开来,因为RGB和CMYK是两种系统显示模式,举个例子就有点像英寸和市尺之间的差别,都是描述长度的单位,任何一个有形物体都可以用它们来描述,所以你没有办法说哪个东西是英寸的,哪个是市尺的。但它们确实不同。
    这两种颜色模式的差别也是这样的。不过有些格式的图片能保存其设计时的颜色显示模式,AI文件就是这样的。JPEG文件格式中不知道是有这项功能。
      

  2.   

    不认同楼上,你想想人家photoshop是怎么认出来的?RGB和CMYK的区别并不是如同你说的英寸和市尺之间的差别,二者的编码方法不同,一个是三个颜色通道,另一个是四个颜色通道。一个适用于屏幕显示,一个适用于打印。
      

  3.   

    http://www.bisenet.com/2005/4-13/11184174001.html这里有个叶子,楼主看看,至少可以懂得二者的区别了。
      

  4.   

    这时说的是文件存取格式,和编码没有任何关系。只有在JPEG文件中存取相关信息才能确定是什么颜色模式,最终采用不同的解码机制来处理。
    英寸和市尺只是打一个我们日常生活中的例子而已,事实上任何一种图片都是可以在屏幕上显示和在打印机上打印的,只是颜色和效果不一样,但我们仍知道它们是一幅图,只是适合不一样。英寸和市尺也是有它们自已应用的适合的。
      

  5.   

    首先谢谢大家的回复!
    我觉得大家说的都在理,图片上某个点的颜色对我们的眼睛来说,不管用什么格式来表示的,它都是颜色(当然不同模式的图片在显示器上确实略有差别),但是处理颜色的设备必须知道它是什么格式的,才能正确的还原它的颜色,photoshop显然知道jpeg文件是什么格式的,那么这说明确实应该有办法能判断图片采用的格式。不知道有没有高人能用同一张图片的两总不同格式来对比分析一下?我试图这么做过,可是我的能力确实太差了。
    具体到我的工作中的例子,富士的数码彩扩机,就只能用RGB格式,如果用photoshop保存的CMYK格式输入进去,出来的照片就是面目全非的,所以我才想到写个小程序来判断图片格式。
    上面我强调“photoshop保存的CMYK格式”,是因为我在为这个问题查找资料的过程中,找到一些声称“支持CMYK”的图像控件,当我用它们调入photoshop保存的CMYK格式的图片的时候,照样显示得面目全非,看起来象一个灰度图,上面掺杂一些细微的色斑,而且,本来和图片大小一样的组件,只能显示图片的一部分。这样看来,同一个CMYK里面还有不同的学问了,由于我只有photoshop,没法得到“别的CMYK”图片,所以无法验证。
      

  6.   

    真心希望大家能帮帮我,非常感谢。
    另外提供一个信息,也许对研究这个问题有点帮助:
    如果在photoshop里面把一张图片改为CMYK模式,你就不能把它存为bmp格式了,这说明bmp图片是不支持CMYK模式的。
      

  7.   

    周末休息,没有回复。http://web.gdut.edu.cn/~dj/jxsb/cai/mp82.htm
    JPEG编码和原理
      

  8.   

    TJPEGImage不支持CMYK,需要自己重新封装jpeglib6b
      

  9.   

    谢谢四星ehom的回复。我的目的,并不是要显示或者编辑CMYK的jpeg图片,我是想要检测一张图片是不是CMYK,也就是想要从一堆图片中,把CMYK的格式的图片挑出来,因为我的彩扩机不支持CMYK格式,一旦有CMYK的图片送进来,就会出废片,出了废片是扣员工的钱,可是我不想扣他们的钱啊。
      

  10.   

    这么说JEPG图片支持CMYK颜色模式了?如果支持的话在其文件格式中一定能找到相关信息的。除非JPEG只支持CMYK。听说静态图象专家组有好几种JPEG和JPG格式呢,问题还是相当复杂的。
      

  11.   

    笨办法:JPEG文件中前8个字节是FF D8 FF E1的为CMYK模式,而FF D8 FF E0的为RGB模式,这是我经过分析数百张图片后得出的结果,但是这肯定不是两者的本质区别,楼主自己看着办吧。另外我还发现CMYK的图片文件比RGB的要大很多倍。
      

  12.   

    谢谢yonny,我决定先用的你方法对付着用,目前看来这样对我的用途来说足够了,非常感谢你!此贴结贴了,来者有分,yonny请进此贴:
    http://community.csdn.net/Expert/topic/4077/4077408.xml?temp=.2111322