求C语言 图形函数书 或者 制作函数图像教程 最好是简单易懂的。。。
COLORREF类型用来描绘一个RGB颜色。其定义如下:
typedef DWORD COLORREF;
typedef DWORD *LPCOLORREF;
COLORREF 类型变量值描绘一个颜色时对应于下面16进制的格式:
0x00bbggrr
可以用这样一个结构体来描述。
RGB_value struct
{
byte unused ;
byte blue ;
byte green ;
byte red;
};
其中第一字节为 0 而且始终为 0,其它三个字节分别表示兰色、绿色和红色,刚好和 RGB 的次序相反。这个结构体用起来挺别扭。对于COLORREF,我们通常使用宏RGB对其进行赋值。
宏的定义如下:
COLORREF RGB
(
BYTE byRed , // red component of color
BYTE byGreen , // green component of color
BYTE byBlue // blue component of color
);
COLORREF 是一个 32-bit 整型数值,它代表了一种颜色。你可以使用 RGB 函数来
初始化 COLORREF。例如:
COLORREF color=RGB(0,255,0);
RGB函数接收三个 0-255 数值,一个代表红色,一个代表绿色,一个代表蓝色。在
上面的例子中,红色和蓝色值都为 0,所以在该颜色中没有红色和蓝色。绿色为最大值
255。所以该颜色为绿色。0,0,0 为黑色,255,255,255 为白色。
另一种初始化 COLORREF 的方法如下所示:
CColorDialog colorDialog;
COLORREF color;
if( colorDialog.DoModal() == IDOK )
{
color = colorDialog.GetColor();
}
这段代码使用了 MFC 中的颜色对话框,它需要文件。
如何从 COLORREF中获取RGB分量值:
COLORREF colorrrefRGB=RGB(120,250,110);
BYTE r = GetRValue(colorrrefRGB);
BYTE g = GetGValue(colorrrefRGB);
BYTE b = GetBValue(colorrrefRGB);
求高手给一个c语言yuv420转rgb24的函数,该怎么处理
yuv420也分很多种,亲你要哪种?
建议网上查yuv转rgb,查表法 ,这个比较快
另 yuv420还分几种 比如I420 yv12 nv12 nv21,必须搞清楚,不然出来的图像很嘻哈的哟
如何把RGB颜色值(为整型)转化为颜色?
这个一般是通过接口函数实现的,就是说操作系统会给你提供一些绘制图片的函数,你只要把你的颜色值当成这个函数的参数就可以了
C语言控制台程序以RGB为参数输出彩色字
不要搞这玩意了,现在这种东西哪还有用。graphics十五年前就被市场抛弃了,就一些等级考试的教材才用
请教c语言大侠,将rgb图片转成二值图,算法怎么处理,具体对像素存储指针*bitmap_ptr 怎么处理,感谢!
二值图也是灰度图,灰度是指单波段0-255
看看这个函数 wr_dat_only (bitmap_ptr[i+j]); 具体做了啥算法。
颜色空间RGB与 色调、饱和度、亮度(ESL)转换的完整C语言算法
你把0-240 按比例 缩放 一下 到 HSL 的 范围,用 HSL-RGB 转换。
HSL–H是色相(0到360度),S是饱和度(0到1),L是亮度(0到1)
规1化的 HSL到RGB颜色值算换子程序:
// nomorized h,s,L 0-1.0
void HSL2RGB(double h, double s, double L,unsigned char *rr, unsigned char *gg,
unsigned char *bb)
{
double v,m,sv, vs0, c1, c2,xiaoshu,r,g,b;
int ih;
r = L; g = L;b = L;
if (L = 0.5) v = L * (1.0 + s); else v = L + s – L * s;
if (v 0) {
m = L + L – v; sv = (v – m ) / v;
h = h * 6.0; ih = (int)h;
xiaoshu = h – ih;
vs0 = v * sv * xiaoshu; c1 = m + vs0; c2 = v – vs0;
switch (ih) {
case 0: r = v; g = c1; b = m; break;
case 1: r = c2; g = v; b = m; break;
case 2: r = m; g = v; b = c1; break;
case 3: r = m; g = c2; b = v; break;
case 4: r = c1; g = m; b = v; break;
case 5: r = v; g = m; b = c2; break;
default: break;
}
}
*rr = (int) (r * 0xff); *gg = (int) (g * 0xff); *bb = (int) (b * 0xff);
}
把你3个数值,各除以240,代入子程序即可。
详见:
彩虹光谱RGB值自动生成程序 (L_o_o_n_i_e == 金色潜鸟)