忆往昔, 项羽不过江. 江东好风光! 今振臂一呼,率甲三千, 试问天!
  •  
  • 首页
  •  

 

2010
01-13
CMYK与RGB图像模式的转换
分类: | 查看: 603 | 评论(0)

CMYK模式属于印刷模式,而RGB属于光的三原色。CMYK采用减色法,而RGB采用加色法,网上流传的一些转换算法,在photoshop里面 打开之后发现颜色误差很大。

1).这是CMYK的色彩表:http://www.december.com/html/spec/colorcmyk.html

2).对于BCB或是delphi,可以考虑采用GraphicEx,安装方法如下:

create new package.
Example GraphEx.dpk
requires
rtl,
vcl,
vcljpg;
contains
MZLib in 'MZLib.pas',
GraphicCompression in 'GraphicCompression.pas',
GraphicEx in 'GraphicEx.pas',
GraphicStrings in 'GraphicStrings.pas',
JPG in 'JPG.pas',
GraphicColor in 'GraphicColor.pas';
Then compile and install it. Now,as Design-time , drop Image1 (TImage) on Form1, you can load images (*.gif,...) in picture property of image1.
Hope you do complete .

3).网上流传的不太精确的办法是:

  void   CMYK2RGB(BYTE   C,BYTE   M,BYTE   Y,BYTE   K,BYTE&   R,BYTE&   G,BYTE&   B)  
  {  
        if   (   C   +   K   <   255   )  
              R   =   255   -   (C   +   K);  
        else  
              R   =   0;  
        if   (   M   +   K   <   255   )  
              G   =   255   -   (M   +   K);  
        else  
              G   =   0;  
        if   (   Y   +   K   <   255   )  
              B   =   255   -   (Y   +   K);  
        else  
              B   =   0;  
  } 

 

4).不过最后发现,真实的转换方法需要这样做:

var R=Math.round((1-C)*(1-K)*255);
var B=Math.round((1-Y)*(1-K)*255);
var G=Math.round((1-M)*(1-K)*255);

 

C,M,Y,K为百分比。这个贴子具有强烈的参考意义。

正在加载评论列表...
正在加载评论页面















































...