仅从红色通道中减去一个值

时间:2018-10-06 18:40:49

标签: image imagemagick gimp

有什么简单的方法可以从红色通道中减去一个值?例如,假设一个像素具有RGB(140,30,50),我希望仅从红色通道中减去100,因此得到RGB(40,30,50)。我知道图像的发红度超过100,因此达到零应该没有任何问题。

我不熟悉Gimp,尽管我认为这也是可能的。还是有一个简单的ImageMagick命令可以完成这项工作?

2 个答案:

答案 0 :(得分:2)

在Imagemagick中,您需要使用量子范围内的值(默认值为16位,所以0到65535)或百分比。减法100是100 * 100/255 = 39.2%,所以在Imagemagick 6中

convert image -channel r -evaluate subtract 39.2% +channel newimage


例如,我创建了一个全红色图像(r = 255):

convert -size 1x1 xc:"srgb(255,0,0)" red.png

convert red.png -channel r -evaluate subtract 39.2% +channel red2.png

convert red2.png -format "%[fx:floor(255*u.r)]" info:
155

255-100=155; So we got the correct result above.


在Imagemagick 7中,您可以

magick image -channel r -evaluate subtract "%[fx:100*100/255]"% +channel newimage

答案 1 :(得分:1)

在Gimp中,有两种方法:

方法#1

  • 在顶部添加一层,
  • 用深红色(RGB(100,0,0))填充
  • 将其放入Subtract混合模式。

方法2

  • 将前景色设置为RGB(100,0,0)
  • 将存储桶填充工具模式设置为Subtract
  • 用桶填充图层