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

Combine remote images to one image using ruby-vips

我有一个模板图像,需要在 X 和 Y 位置附加特定图像。 rmagick

中是否有与该函数等效的函数

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

并在其他图像上绘制并生成一幅图像。

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"

制作: