RMagickで複数枚の画像を重ねる
Image.compositeで重ねられる。
ruby img-composite.rb base.png img1.png img2.jpg img3.jpg result.png
img-composite.rb
#!/usr/bin/env ruby require 'rubygems' require 'RMagick' include Magick resultFileName = ARGV.pop result = Image.from_blob(File.read(ARGV.shift)).shift ARGV.each{|file| puts file img = Image.from_blob(File.read(file)).shift result = result.composite(img, 0, 0, OverCompositeOp) } result.write(resultFileName)
結果画像 = 下の画像.composite(上の画像, x座標, y座標, 重ね方)
重ね方は、色々指定できるらしい。
とりあえずこのコードで、アルファチャンネル付きPNGのみ透過が考慮され、他はそのまま上に貼り付けられるのでよしとする。