所以我有这个基本图像:
在 photoshop 中,我使用 rgb 颜色进行基本图层颜色叠加:
r: 244, g: 93, b: 0
这给了我惊人的活力:
我想要做的是在 rmagick 中为相同的图像着色,所以如果我执行以下着色:
img = Magick::Image.read('brush.png').first
img = img.colorize(100, 100, 100, Magick::Pixel.new(244, 93, 0, 1))
img.format = 'png'
img.to_blob
它给了我这个真正褪色的橙色图像:
我的问题是,如何使用 imagemagick/rmagick 中的那些 rgb 参数为该图像着色,以获得与我在 photoshop 中获得的相同鲜艳的颜色。
谢谢。
最佳答案
在命令行,我想你想要这样的东西:
convert brush.png \( +clone -fill "rgb(244,93,0)" -colorize 100% \) -compose colorize -composite out.png
因此,使用
+clone
我正在创建另一个与您的图像大小相同的图层,并用您的橙色完全填充它 100%,然后使用 -composite
将其组合在您的图像上。混合不透明度和颜色。我真的不会说 Ruby,但我认为应该是这样的:
#!/usr/bin/ruby
require 'RMagick'
include Magick
infile=ARGV[0]
img=Magick::Image.read(infile).first
w=img.columns
h=img.rows
ovl=Image.new(w,h){self.background_color=Magick::Pixel.new(244*256,93*256,0)}
img.composite!(ovl,0,0,Magick::ColorizeCompositeOp)
img.write('result.png')
关于image - 使用 rmagick 像在 Photoshop 中一样为图像着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29452376/