2015-01-08 2 views
1

Я хочу объединить два изображения (одно фоновое изображение, одно текстовое изображение) в одно большое изображение.MiniMagick Gem: Как создать новое пустое изображение без файла?

Я считаю, что у меня есть фоновое изображение, так как оно основано только на файле. Однако у меня возникли проблемы с созданием образа с нуля. Какие-нибудь советы?

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 

ответ

1

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) 

UPDATE: я использую MiniMagick 3.8.0, и в последней версии 4.0.1 есть класс MiniMagick::Shell, думаю, что он может запускать эту пользовательскую команду ImageMagick напрямую.

+0

Yeh я думал, что тоже .. но это, кажется, не слишком чисто. Однако я буду рассматривать это как вариант. благодаря! – Edmund

3

Создание изображения с нуля со следующими рубинового Код:

MiniMagick::Tool::Convert.new do |i| 
i.size "700x200" 
i.gravity "center" 
i.xc "white" 
i.caption "blablabla" 
i << "test_image.jpg" 
end 
Смежные вопросы