• 大小: 26KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: 其他
  • 标签: rgb值  cmyk值  

资源简介

图像中rgb值和cmyk值转换,用于颜色空间变换。

资源截图

代码片段和文件信息

//ColorType.cpp
#include “ColorType.h“
//类ColorType函数的详细定义
//构造函数:
ColorType::ColorType()
{ RGB.R=(BYTE)255;
  RGB.G=(BYTE)255;
  RGB.B=(BYTE)255;
}
//从32值(DOWRD)提取RGB三种颜色值:
void ColorType::Value32ToRGB(DWORD value32)

   RGB.R=(BYTE)((value32 & 0x00FF0000)>>0);
   RGB.G=(BYTE)((value32 & 0x0000FF00)>>8);
   RGB.B=(BYTE)((value32 & 0x000000FF)>>16);   
}

//RGB颜色模式转换成CMYK颜色模式:
void ColorType::RGBtoCMYK( )
{  
   CMYK.C=255-RGB.R;
   CMYK.M=255-RGB.G;
   CMYK.Y=255-RGB.B;
   CMYK.K=((CMYK.C   CMYK.C-=CMYK.K;
   CMYK.M-=CMYK.K;
   CMYK.Y-=CMYK.K;   
}

//RGB颜色模式转换成HST颜色模式:
void  ColorType::RGBtoHSI()
{  
   double v1=0.7071*((double)RGB.G-(double)RGB.B);
   double v2=0.816496*(double)RGB.R-0.408248*((double)RGB.G+(double)RGB.B);
   HSI.H=atan(v2/v1);
   HSI.S=sqrt(v1*v1+v2*v2);  
   HSI.I=0.57735*((double)RGB.R+(double)RGB.G+(double)RGB.B);       
}

//RGB颜色模式转换成YCbCr颜色模式:
void ColorType:: RGBtoYCbCr( )

  YCbCr.Y = 0.299*(double)RGB.R+0.587*(double)RGB.G+0.1140*(double)RGB.B;
  YCbCr.Cr= 0.500*(double)RGB.R-0.4187*(double)RGB.G-0.0183*(double)RGB.B+128;
  YCbCr.Cb=-0.1687*(double)RGB.R-0.3313*(double)RGB.G+0.500*(double)RGB.B+128;   
}

//RGB颜色模式转换成YUV颜色模式:
void   ColorType::RGBtoYUV( )

  YUV.Y= 0.299*(double)RGB.R+0.587*(double)RGB.G+0.144*(double)RGB.B;
  YUV.U=-0.147*(double)RGB.R-0.289*(double)RGB.G+0.436*(double)RGB.B;
  YUV.V= 0.615*(double)RGB.R-0.515*(double)RGB.G-0.100*(double)RGB.B;  
}

//CMYK颜色模式转换成RGB颜色模式:
void ColorType::CMYKtoRGB()

   CMYK.C+=CMYK.K;
   CMYK.M+=CMYK.K;
   CMYK.Y+=CMYK.K;
   RGB.R=255-CMYK.C;
   RGB.G=255-CMYK.M;
   RGB.B=255-CMYK.Y;
}

//HSI颜色模式转换成RGB颜色模式:
void  ColorType::HSItoRGB()
{  
   int v1=HSI.S*cos(HSI.H);
   int v2=HSI.S*sin(HSI.H);
   int iR=(int)(0.816496*v2+0.57735*HSI.I);
   int iG=(int)(0.7071*v1-0.40825*v2+0.57735*HSI.I);
   int iB=(int)(-0.7071*v1-0.40825*v2+0.57735*HSI.I);
   RGB.R= (BYTE) BOUND(iR0255) ;
   RGB.G= (BYTE) BOUND(iG0255) ;
   RGB.B= (BYTE) BOUND(iB0255) ;   
}

//YCbCr颜色模式转换成RGB颜色模式:
void ColorType::YCbCrtoRGB()
{  
   int iR=(int)(YCbCr.Y+1.40200*(YCbCr.Cr-128));
   int iG=(int)(YCbCr.Y-0.34414*(YCbCr.Cb-128)-0.71414*(YCbCr.Cr-128));
   int iB=(int)(YCbCr.Y+1.77200*(YCbCr.Cb-128));
   RGB.R= (BYTE) BOUND(iR0255) ;
   RGB.G= (BYTE) BOUND(iG0255) ;
   RGB.B= (BYTE) BOUND(iB0255) ;   
}

//YUV颜色模式转换成RGB颜色模式:
void ColorType::YUVtoRGB( )

   int iR=(int)(YUV.Y+1.140*YUV.V);
   int iG=(int)(YUV.Y-0.395*YUV.U-0.581*YUV.V);
   int iB=(int)(YUV.Y+2.032*YUV.U);
   RGB.R= (BYTE) BOUND(iR0255) ;
   RGB.G= (BYTE) BOUND(iG0255) ;
   RGB.B= (BYTE) BOUND(iB0255) ;     
}
//全部转换成RGB颜色模式:
void ColorType::RGBtoXXX(int n)
{ switch(n)
{case 1: {RGBtoCMYK();
  RGBtoHSI();
  RGBtoYCbCr();
  RGBtoYUV();}break;   //改变的是RGB值
 case 2: {RGBtoHSI();
          RGBtoYCbCr();
          RGBtoYUV();}break;   //改变的是CM

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4434  2005-11-16 03:51  颜色模式\版本1\colortye.dsp

     文件        541  2005-11-16 00:18  颜色模式\版本1\colortye.dsw

     文件      58368  2005-11-16 21:02  颜色模式\版本1\colortye.ncb

     文件      53760  2005-11-16 21:02  颜色模式\版本1\colortye.opt

     文件       1706  2005-11-16 21:02  颜色模式\版本1\colortye.plg

     文件       3579  2005-11-16 21:02  颜色模式\版本1\ColorType.cpp

     文件       1740  2005-11-16 21:02  颜色模式\版本1\ColorType.h

     目录          0  2005-11-16 21:02  颜色模式\版本1\Debug

     文件       1002  2005-11-16 21:02  颜色模式\版本1\main.cpp

     文件       3859  2005-11-16 04:40  颜色模式\版本1\使用说明1.txt

     目录          0  2005-11-16 21:02  颜色模式\版本1

     文件       4391  2005-11-16 11:36  颜色模式\版本2\COLor.dsp

     文件        535  2005-11-16 11:32  颜色模式\版本2\COLor.dsw

     文件      58368  2005-11-16 21:03  颜色模式\版本2\COLor.ncb

     文件      53760  2005-11-16 21:03  颜色模式\版本2\COLor.opt

     文件       1194  2005-11-16 11:35  颜色模式\版本2\COLor.plg

     目录          0  2005-11-16 20:48  颜色模式\版本2\Debug

     文件       3301  2005-11-16 11:35  颜色模式\版本2\head.cpp

     文件       1133  2005-11-16 11:53  颜色模式\版本2\head.h

     文件        521  2005-11-16 11:53  颜色模式\版本2\main.cpp

     文件        135  2005-11-16 11:51  颜色模式\版本2\使用说明2.txt

     目录          0  2005-11-16 21:03  颜色模式\版本2

     目录          0  2005-11-16 20:48  颜色模式

----------- ---------  ---------- -----  ----

               252545                    24


评论

共有 条评论