如何编程实现调整位图的亮度? 我想编个程序实现位图亮度的调整。不知道怎样实现,有没有现成的事例?谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 将RGB转换成YUV,修改Y,然后将修改后的Y与原来的UV重新转换回RGB,即可。 得到位图数据,将每一位的数据都乘一个大于1的系数不就得了,当然需要对RGB各色分别操作,免得造成色彩的改变。需要例子可以留个邮箱号,我给你做一个。 我的email: [email protected]非常感谢 也给我一个吧:)[email protected] 转换公式:R'=R*亮度系数G'=R*亮度系数B'=R*亮度系数(亮度系数为一float,>1就是调亮) DIB处理原理(当时是为了VB写的):http://www.csdn.net/develop/read_article.asp?id=20442 R'=R*亮度系数G'=R*亮度系数B'=R*亮度系数这种方法是会有问题的,这样的话黑色像素永远不会变亮我的程序收到了吧我的方法:R'=255-(255-R)*亮度系数G'=255-(255-G)*亮度系数B'=255-(255-B)*亮度系数//系数小于1时亮度增加,大于1时亮度变暗 void CDib::ModifyBright(int nDelta, BYTE *r, BYTE *g, BYTE* b){//r,g,b为被修改的值//nDelta为调整量int R = *r + nDelta;int G = *g + nDelta;int B = *b + nDelta;*r = (BYTE)Limit(R, 0, 255);*g = (BYTE)Limit(G, 0, 255);*b = (BYTE)Limit(B, 0, 255);}int CDib::Limit(int x, int min, int max){if(x<min) return min;else if (x>max) return max; else return x;} Rich Edit 显示数据问题 求两段VC函数转化为VB能用的函数 javascript 中的 Date().valueOf() 如何用c/c++/api实现呢? “...遇到问题需要关闭.....信息有可能丢失...” 刚学vc,请教个基础问题,子窗体怎么返回值给主窗体? 如何创建属性页 有关定时器和Callback涵数的难题? 我的疑惑?字串是'\0'结束,为何在设置文件对话框时,过滤串要那样的格式? 怎样vc编程实现设置共享目录并设置权限? 请问如何获得剪贴般的内容? 图像亮度的问题 求教,如何在静态库中使用手型光标?
非常感谢
[email protected]
G'=R*亮度系数
B'=R*亮度系数
(亮度系数为一float,>1就是调亮)
http://www.csdn.net/develop/read_article.asp?id=20442
G'=R*亮度系数
B'=R*亮度系数
这种方法是会有问题的,这样的话黑色像素永远不会变亮
我的程序收到了吧我的方法:
R'=255-(255-R)*亮度系数
G'=255-(255-G)*亮度系数
B'=255-(255-B)*亮度系数
//系数小于1时亮度增加,大于1时亮度变暗
{
//r,g,b为被修改的值
//nDelta为调整量
int R = *r + nDelta;
int G = *g + nDelta;
int B = *b + nDelta;*r = (BYTE)Limit(R, 0, 255);
*g = (BYTE)Limit(G, 0, 255);
*b = (BYTE)Limit(B, 0, 255);
}int CDib::Limit(int x, int min, int max)
{
if(x<min)
return min;
else
if (x>max)
return max;
else
return x;
}