使用ruby-vip将远程图像合并为一个图像

时间:2019-04-03 17:01:10

标签: ruby image-processing rmagick vips

我有一个模板图像,需要在该图像上附加X,Y位置的特定图像。 rmagick中是否有与该功能等效的功能

ImageList.new("https://365psd.com/images/istock/previews/8479/84796157-football-field-template-with-goal-on-top-view.jpg")

并绘制其他图像并生成一张图像。

1 个答案:

答案 0 :(得分:2)

ruby-vips不直接支持从URI加载,因此您需要使用其他一些gem来获取图像。例如:

require 'open-uri'
require 'vips'

def new_from_uri(uri, options = {})
  bytes = open(uri) {|f| f.read}
  Vips::Image.new_from_buffer bytes, "", options
end

a = new_from_uri "https://upload.wikimedia.org/wikipedia/commons/a/a6/Big_Ben_Clock_Face.jpg"
b = new_from_uri "https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png"
out = a.composite b, "over", x: 100, y: 100
out.write_to_file "x.jpg"

制作:

example output