仅从红色通道中减去一个值
Subtract a value from the Red channel only
有什么简单的方法可以从红色通道中减去一个值吗?例如,假设一个像素具有 RGB(140、30、50),我希望仅从红色通道中减去 100,从而得到 RGB(40、30、50)。我知道图像的发红度超过 100,所以达到零应该没有任何问题。
我对 Gimp 不熟悉,虽然我认为它也应该是可能的。或者是否有一个简单的 ImageMagick 命令可以完成这项工作?
在 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
在 Gimp 中,两种方法:
方法一
- 在上面添加一层,
- 用深红色 (RGB(100,0,0)) 填充
- 将其置于
Subtract
混合模式。
方法二
- 设置前景色为RGB(100,0,0)
- 将填桶工具模式设置为
Subtract
- 桶填充图层
有什么简单的方法可以从红色通道中减去一个值吗?例如,假设一个像素具有 RGB(140、30、50),我希望仅从红色通道中减去 100,从而得到 RGB(40、30、50)。我知道图像的发红度超过 100,所以达到零应该没有任何问题。
我对 Gimp 不熟悉,虽然我认为它也应该是可能的。或者是否有一个简单的 ImageMagick 命令可以完成这项工作?
在 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
在 Gimp 中,两种方法:
方法一
- 在上面添加一层,
- 用深红色 (RGB(100,0,0)) 填充
- 将其置于
Subtract
混合模式。
方法二
- 设置前景色为RGB(100,0,0)
- 将填桶工具模式设置为
Subtract
- 桶填充图层