2014-11-03 67 views
0

我有兩個圖像(兩個PNG)與透明度。我使用MiniMagick寶石將兩張單張圖像複製到另外兩張圖像中。然後,我想要將這些圖像中的一個圖像合成在一起,從而保持透明度。無法保留透明度使用ImageMagick的複合

使用下面的代碼,它是尊重image2的透明度,但是一旦它放置在image1的頂部(這就是我所追求的),image1的透明度變爲黑色!我需要保留透明度,但我真的不確定如何正確使用alpha透明度,如果這是適當的工具。

image = MiniMagick::Image.open("skin.png") 
image1 = MiniMagick::Image.open(image.path) 
image2 = MiniMagick::Image.open(image.path) 

# Crop and scale image1 
MiniMagick::Tool::Mogrify.new do |m| 
    m.crop '8x8+8+8' 
    m.scale '144x144' 
    m.background 'transparent' 
    m.extent '160x160-8-8' 
    m << image1.path 
end 

# Crop and scale image2 
MiniMagick::Tool::Mogrify.new do |m| 
    m.crop '8x8+40+8' 
    m.scale '160x160' 
    m << image2.path 
end 

result = image1.composite(image2) do |c| 
    c.compose 'Over' 
    c.alpha 'On' 
end 

result.write "public/skins/#{profile}.png" 

send_file "public/skins/#{profile}.png" 

謝謝。

回答

相關問題