2012-01-09 1 views
3

Мне нужно создать изображение из библиотеки imagemagick/rmagick, как мне это сделать? как в php это было сделано, как показано ниже, с помощью библиотеки GD.Как создать изображение в рельсах? (from as imagecreate() в php)

<?php 
     header ("Content-type: image/png"); 
     $handle = ImageCreate (130, 50) or die ("Cannot Create image"); 
     $bg_color = ImageColorAllocate ($handle, 255, 0, 0); 
     ImagePng ($handle); 
    ?> 

На входе я дал цвет изображения, координаты изображения тега области, такие как ... идея?

ответ

6

Вы должны ImagMagick установлены в вашей системе и RMagick камня, затем:

image = Magick::Image.new(130, 50) 
image.background_color = 'red' 
image.write('someimage.png') 

Убедитесь, вы ImageMagick скомпилированы с поддержкой PNG.

Чтобы отправить изображение, вы можете сделать следующую вещь:

send_data image, :type => 'image/png', :disposition => 'inline' 

Тогда вам не нужно, чтобы сохранить изображение, если вы не хотите кэшировать его.

Более подробную информацию об использовании вы можете найти здесь: http://www.imagemagick.org/RMagick/doc/image1.html

2

http://www.imagemagick.org/RMagick/doc/usage.html#reading

require 'RMagick' 
include Magick 
# Create a 100x100 red image. 
f = Image.new(100,100) { self.background_color = "red" } 
f.display 
exit 
+0

Привет, anand, мне нужно иметь изображение с линейным графиком с заданной координатой. Спасибо за ответ. –

2

Вот что я использовал для создания инлайн изображения на лету:

@placeholder = Magick::Image.new(@book.width, @book.height) 
@placeholder.format = "png" 
@placeholder = "data:image/png;base64,#{Base64.encode64 (@placeholder.to_blob)}" 

И:

<img src="<%= @placeholder %>" /> 

Это некрасиво, но сейчас это работает.

Смежные вопросы