什么是调整图像亮度、对比度和伽马值的最简单方法?这里的“正确”是因为我知道如何不正确地执行这些调整:循环遍历所有RGB像素,并对每个通道进行以下操作:
int changeBrightness( int value, int brightness) {
return qBound<int>(0, value + brightness * 255 / 100, 255);
}
int changeContrast( int value, int contrast ) {
return qBound<int>(0, int(( value - 127 ) * contrast / 100 ) + 127, 255 );
}
int changeGamma( int value, int gamma ) {
return qBound<int>(0, int( pow( value / 255.0, 100.0 / gamma ) * 255 ), 255 );
}
尽管此代码可以添加亮度/对比度/伽马变化效果,但效果并不好。像Photoshop这样的专业图像软件处理得更好。
哪个库是处理这种问题的最佳选择?我知道有ImageMagick,但它非常沉重,我不想链接到成百上千的功能中的一个。有没有轻量级的替代方案?