无法使用ImageMagick';s复合材料

无法使用ImageMagick';s复合材料,imagemagick,transparency,minimagick,Imagemagick,Transparency,Minimagick,我有两个图像(都是png)的透明度。我正在使用gem将单个图像的两个副本裁剪成另外两个图像。然后我想在另一幅图像的上面合成一幅图像,一直保持透明度 使用下面的代码,它是关于image2的透明度的,但是一旦它被放置在image1的顶部(这就是我想要的),image1的透明度就会变为黑色!我需要保留透明度,但我真的不确定如何正确使用alpha透明度,如果这是一个合适的工具的话 image = MiniMagick::Image.open("skin.png") image1 = MiniMagick

我有两个图像(都是png)的透明度。我正在使用gem将单个图像的两个副本裁剪成另外两个图像。然后我想在另一幅图像的上面合成一幅图像,一直保持透明度

使用下面的代码,它是关于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"
image=MiniMagick::image.open(“skin.png”)
image1=MiniMagick::Image.open(Image.path)
image2=MiniMagick::Image.open(Image.path)
#裁剪和缩放图像1
MiniMagick::Tool::Mogrify.new do | m|
m、 裁剪“8x8+8+8”
m、 “144x144”刻度
m、 背景“透明”
m、 区段“160x160-8-8”

mMiniMagick的合成被处理为带有初始值的jpg

下面的代码对我有用

result = image1.composite(image2, 'png') do |c|
  c.channel "A"
  c.alpha 'Activate'
  c.compose 'Over'
end