RMagick - 调整亮度?

时间:2013-11-04 18:21:12

标签: ruby-on-rails ruby imagemagick rmagick

有人知道如何使用RMagick调整图像的亮度吗? Rmagick有许多不同的功能,包括调节水平和色调/亮度/饱和度的功能,但我需要调整老式的亮度/对比度。

我可以通过自定义功能单独调整每个颜色通道(RGBA),但我不确定如何使用水平调整整体亮度。弄乱不同的频道已经产生了颜色变化的图像。在GIMP上,在级别菜单中,我想要的所需功能在“输出级别”下。通过将其拖动到255以下,我可以实现“变暗”效果。在RMagick中是否有某种等价物来控制输出电平?我没有看到它的频道。

示例:

这是原始图片: Original Image

这就是我想要的: Desired Result

当我调整光线时,这就是发生的事情(Rmagick的调制) Undesired Result from Lightness

2 个答案:

答案 0 :(得分:1)

我认为这应该做你需要的。

img = Magick::Image.read('bT9xc.png')
img.first.level(-Magick::QuantumRange * 0.25, Magick::QuantumRange * 1.25, 1.0).write('out.png')

这将黑点和白点“远离”图像中的范围设置,这样可以使源图像中最亮的白色更暗,源图像中最暗的黑色更亮。

如果你想让它整体变暗,只需将第二个因子增加到Magick::QuantumRange * 1.5或更高。

答案 1 :(得分:0)

我认为您可以使用modulate方法:http://www.imagemagick.org/RMagick/doc/image2.html#modulate

因此,为了将亮度提高50%,它将类似于:

img.modulate(1.5)