http://lh5.google.com/image/farproc/RluNiEoxQ4I/AAAAAAAAAlo/fUUEJfmGq_s/s144/RGB24-spectrum.jpg1、使用Windows API画出这个图像。不是先保存一个图片,然后贴到DC上。
2、给出光谱上的某点坐标,算出(不是从屏幕上取出)该点的颜色值(RGB)
2、给出光谱上的某点坐标,算出(不是从屏幕上取出)该点的颜色值(RGB)
解决方案 »
- 光源问题??
- Struct的问题...
- 在VC下向MySQL数据库添加数据表?
- 如何实现两个OCX控件的通讯
- 扩展名为pdg、PDF的是什么文件,应该怎么打开
- 如何拦截OpenProcess这个函数?使得所有其它进程都无法打开我的进程?
- 请问:如何在控件面板中把已经加载的控件删除掉?
- 请教大家一个小问题,VC对STL的兼容性如何? 为什么我的程序在编译的时候提示找不到 stdlib 文件头呢?是不是VC 中要想用 STL要安装什么东西吗?
- ??1bit转8bit,用CreateDIBSection显示到DC上,为什么全黑?
- 调试中出现的问题?关于C++基本功的。
- 请教vc中用ado?
- acm压缩的源格式和目标格式怎么选择?
http://www.farproc.com/RGB24-spectrum.bmp
int nR=255,nG=0,nB=0;
COLORREF clr;
POINT pt;
pt.x = 10;
pt.y = 10;//从10点开始画
for (;nR>=0&&nG<256;)//画红到黄
{
for(int j=0;j<nWidth;j++)
{
pDC->SetPixel(pt,RGB(nR,nG,nB));
pt.y++;
}
nG+=5;//间隔大点要不太多了,可以通过这个调整
pt.y = 10;
pt.x++;
}
pt.y = 10;//从10点开始画
nG = 255;
for (;nR>=0;)//画黄到绿
{
for(int j=0;j<nWidth;j++)
{
pDC->SetPixel(pt,RGB(nR,nG,nB));
pt.y++;
}
nR-=5;//间隔大点要不太多了,可以通过这个调整
pt.y = 10;
pt.x++;
}
pt.y = 10;//从10点开始画
nR = 0; nG = 255;
for (;nB<256;)//画绿到青
{
for(int j=0;j<nWidth;j++)
{
pDC->SetPixel(pt,RGB(nR,nG,nB));
pt.y++;
}
nB+=5;//间隔大点要不太多了,可以通过这个调整
pt.y = 10;
pt.x++;
}
可以封装一下。盛下的同理,
其实可以在一个bmp dc上画的,
一个COLORREF数组中,然后根据鼠标点在画的区域中的位置
对应到数组中就可以了。
你的这个代码画出来的只是水平方向的渐变。而原图在垂直方向上也是有渐变的。
http://www.farproc.com/RGB24-spectrum.bmp
2、不经验不经验的问题。需求就是这样子的。