我想将两张图片(一张背景图片,一张文字图片)合并为一张大图片。
我相信我已经完成了背景图片,因为它只是基于一个文件。但是,我无法尝试从头开始创建图像。有什么提示吗?
image = MiniMagick::Image.open("public/text_response_bg.png")
image.combine_options do |i|
i.size "1024x512"
end
text = MiniMagick::Image.new #<-- does not work
text.combine_options do |i|
i.size "700x200"
i.gravity 'center'
i.fill 'white'
i.caption 'blahblahblah'
end
result = image.composite(text) do |c|
c.compose "Over"
c.geometry "+20+20"
end
答案 0 :(得分:5)
使用以下Ruby代码从头开始创建图像:
// this should be in the main page
$window.addEventListener('storage', function(event) {
if(event.key === 'login-notification') {
// got it!
// you can get the value from
// the notification with "event.newValue"
}
}, false);
// send the event with just a setItem from the popup
$window.localStorage.setItem('login-notification', 'ayy');
答案 1 :(得分:2)
MiniMagick提供了一种方法MiniMagick::Image.create
来创建新图片,但似乎无法使用this issues
使用ImageMagick主命令可以创建纯色图像,如
convert -size 800x600 xc:"#ffffff" write.jpg
因此,如果不介意使用系统命令创建图像,您可以这样做:
cmd = "convert -size 800x600 xc:'#ffffff' WRITE_IMAGE.jpg"
system(cmd)
更新:我使用MiniMagick 3.8.0,并且看到最新版本4.0.1有一个MiniMagick::Shell
类,认为它可以直接运行该自定义ImageMagick命令。