如何使用 Minimagick 复合材料为我的徽标获得透明背景?
How to get a transparent background for my logo using Minimagick composite?
这是我的代码:
process :watermark
def watermark
second_image = MiniMagick::Image.open("https://s3.amazonaws.com/....logo.png")
manipulate! do |img|
result = img.composite(second_image) do |c|
c.compose "Over" # OverCompositeOp
c.gravity "Southeast"
end
result
end
end
问题是第二张图片显示为正方形或长方形,没有显示透明背景。
如何让我的徽标合成在具有透明背景的图像之上?
编辑
我尝试了以下代码
def watermark
def second_image
second_image = MiniMagick::Image.open("https://s3.amazonaws.com/...logo.png") do { "white" => transparent }
second_image.save
end
manipulate! do |img|
result = img.composite(second_image) do |c|
c.compose "Over" # OverCompositeOp
c.gravity "Southeast" # copy second_image onto first_image from (20, 20)
end
result
end
end
end
不起作用,导致 second_image 未在上传时合成,仅返回上传。
编辑 2
我的图像实际上不是透明的,:/
这是我的代码:
process :watermark
def watermark
second_image = MiniMagick::Image.open("https://s3.amazonaws.com/....logo.png")
manipulate! do |img|
result = img.composite(second_image) do |c|
c.compose "Over" # OverCompositeOp
c.gravity "Southeast"
end
result
end
end
问题是第二张图片显示为正方形或长方形,没有显示透明背景。
如何让我的徽标合成在具有透明背景的图像之上?
编辑
我尝试了以下代码
def watermark
def second_image
second_image = MiniMagick::Image.open("https://s3.amazonaws.com/...logo.png") do { "white" => transparent }
second_image.save
end
manipulate! do |img|
result = img.composite(second_image) do |c|
c.compose "Over" # OverCompositeOp
c.gravity "Southeast" # copy second_image onto first_image from (20, 20)
end
result
end
end
end
不起作用,导致 second_image 未在上传时合成,仅返回上传。
编辑 2
我的图像实际上不是透明的,:/