我做的界面上两个picture有两幅彩色图片,一个按钮,现在要单击一下按钮将两幅彩色图片转换成黑白图片,并在另外两个picture控件上显示,请问程序如何编写?
解决方案 »
- 请教SHELLEXECUTEINFO()的使用
- dll导出函数问题
- 调用DialogBox函数,在release版本成功,在debug版本就失败,怎么回事?
- CScrollView显示大图像的问题,有代码!50分急求!!!
- 如何运行vc++ 已经编好的一个程序?
- 有没有人能告诉我source safe怎么备份数据啊
- 文本文件,每行都是以“\n”结尾,读取错误,等待?
- Winamp3 发布了最新版本,试试先!!
- VC++MFC串口通信程序,怎样直接给发送缓存区赋值?比如输入命令按下确认键上位机处理任务,同时要把输入命令发送给下位机如何实现
- 小程序,求救!
- 谁可以帮我作一个用钩子实现获得鼠标坐标的例子
- 关于setsockopt中SO_REUSEADDR这一选项
因为红绿兰对视觉的刺激程度不同,所以采用算法 R*0.3+G*0.59+B*0.11 比较好,但这不是唯一的算法,常用的还有其他三种,共四种:
1. R*0.299 + G*0.587 + B*0.114
(这其实就是上面所说的算法,只是权值更精确了一些 )
2. R*0.45+G*0.35+B*0.20
3. max( R, G, B );
4. avg( R, G, B ); (windows 中自带的画图软件就使用这种算法。 )书籍上介绍的一般都是:
灰度值 = (R*30 + G*59 + B*11 ) / 100
把 R,G,B都赋值为该亮度值,就可得到灰度图象。
无调色板的真彩色,直接修改数据。
有调色板的直接修改调色板中的RGB。
从数据区里面找到每一个像素的 R,G,B分量,
按公式
n= R*0.3+G*0.59+B*0.11
计算后,再把值赋给 R,G,B,处理完后把数据区拷贝给 另一幅图片。