MiniMagick - 为图像添加纹理

时间:2014-01-08 04:40:59

标签: imagemagick carrierwave minimagick

假设:

纹理texture和照片(没有透明背景)enter image description here

如何为照片添加纹理?

具体来说,我需要以下步骤:

  1. 平铺纹理。从here开始,我有:convert -size 1056x576 tile:Castillo_001.gif Castillo_tiled.gif
  2. 反转结果。
  3. 使用相当于Photoshop中“Color Dodge”混合模式的照片复合。
  4. MiniMagick的任何线索?或者ImageMagick中答案的任何线索?

    非常感谢。

    答案

    ImageMagick的:

    convert IMG_1970.JPG \( -size 2816x1584 tile:background.png -negate \) -compose ColorDodge -composite out.jpg
    

    完整答案:

      # I just negatived the background already
      img = MiniMagick::Image.open(File.join('IMG_1970.JPG'))
      background = MiniMagick::Image.open(File.join('background_negative.png'))
      background.combine_options do |c|
        c.size "#{img['width']}x#{img['height']}"
        c.tile background.path
      end
    
      img = img.composite(background) do |c|
        c.compose "ColorDodge"
      end
    

1 个答案:

答案 0 :(得分:1)

使用tile:格式创建纹理图像是正确的。只需应用-negate选项即可反转结果。之后,简单的撰写&复合命令将“颜色减淡”效果应用于任何给定图像。请参阅Compose Examples文章。

convert \( -size 1056x576 tile:Castillo_001.gif -negate \) \
        source_image.jpg -compose Lighten -composite out_image.jpg