使用rmagick为照片中的图像着色

时间:2015-04-04 23:06:58

标签: image colors imagemagick rmagick colorize

所以我有这个基本形象:

enter image description here

在Photoshop中我使用rgb颜色进行基本的图层颜色叠加:

r:244,g:93,b:0

这给了我惊人的活力:

enter image description here

我要做的是在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

它给了我这个真正褪色的橙色图像:

enter image description here

我的问题是,我如何使用imagemagick / rmagick中的rgb参数对这个图像进行着色,以获得与我在photoshop中获得的相同的鲜艳色彩。

感谢。

2 个答案:

答案 0 :(得分:3)

在命令行,我想你想要这样的东西:

convert brush.png \( +clone -fill "rgb(244,93,0)" -colorize 100% \) -compose colorize  -composite out.png

enter image description here

所以,使用+clone我创建了另一个与图片大小相同的图层,并使用橙色完全填充100%,然后用图片在图像上组合 {1}}混合不透明度和颜色。

我真的不会说Ruby,但我认为它将遵循这些方针:

-composite

答案 1 :(得分:2)

Mark Setchell的命令行适用于我(Windows),稍作修改......

convert greyscale.png +clone -fill "rgb(244,93,0)" -colorize 100% -compose colorize -composite colour.png

使用rmagick找到关于重新着色的链接... ftp://belagro.com/Redmine/ruby/lib/ruby/gems/1.8/gems/rmagick-2.12.0/doc/colorize.rb.html

基于上面链接中的代码,删除了灰度转换后,下面的示例是否正常工作(我没有ruby)?

# load the greyscale image
img = Magick::Image.read('greyscale.png').first
# Colorize with a 100% blend of the orange color
colorized = img.colorize(1, 1, 1, '#A50026')
# save the colour image
colorized.write('colour.png')

使用颜色选择器获取橙色的十六进制 - rgb(244,93,0) = #A50026