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"
謝謝。