Объедините удаленные изображения в одно изображение с помощью ruby-vips

У меня было изображение шаблона, и мне нужно было добавить к нему определенные изображения в позициях X, Y. Есть ли эквивалент этой функции в rmagick?

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

и рисовать на этих других изображениях и генерировать одно изображение.


person abdoutelb    schedule 03.04.2019    source источник


Ответы (1)


ruby-vips не поддерживает загрузку из URI напрямую, поэтому вам нужно получить изображения, используя какой-то другой гем. Например:

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"

Делать:

пример вывода

person jcupitt    schedule 04.04.2019
comment
Рассмотрите возможность использования блочной формы open-uri, иначе соединение не будет немедленно закрыто. open(url, &:read) - person Nakilon; 04.04.2019