大佬教程收集整理的这篇文章主要介绍了使用c调整位图图像亮度/对比度,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
编辑链接已死:
jerry Coffin在下面给出的答案涵盖了相同的主题,并且链接仍然存在.
但是,要调整亮度,可以为图像的R,G,B字段添加一个常量值.确保使用饱和数学 – 不允许值低于0或高于您的位深度允许的最大值(24位颜色为8位)
RGB_struct color = GetPixelColor(x,y); size_t newRed = truncate(color.red + brightAdjust); size_t newGreen = truncate(color.green + brightAdjust); size_t newBlue = truncate(color.blue + brightAdjust);
相比之下,我从this website采取并略微修改了代码:
float factor = (259.0 * (contrast + 255.0)) / (255.0 * (259.0 - contrast)); RGB_struct color = GetPixelColor(x,y); size_t newRed = truncate((size_t)(factor * (color.red - 128) + 128)); size_t newGreen = truncate((size_t)(factor * (color.green - 128) + 128)); size_t newBlue = truncate((size_t)(factor * (color.blue - 128) + 128));
其中truncate(int value)确保8位颜色的值保持在0到255之间.请注意,许多cpu具有在一个周期内执行此操作的内部函数.
size_t truncate(size_t value) { if(value < 0) return 0; if(value > 255) return 255; return value; }
以上是大佬教程为你收集整理的使用c调整位图图像亮度/对比度全部内容,希望文章能够帮你解决使用c调整位图图像亮度/对比度所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。