Как создать изображение в рельсах?(из как imagecreate () в php) - PullRequest
3 голосов
/ 09 января 2012

Мне нужно создать изображение из библиотеки imagemagick / rmagick. Как мне это сделать?как в php это было сделано, как показано ниже, с библиотекой GD.

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

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

Ответы [ 3 ]

6 голосов
/ 09 января 2012

Вам необходимо установить ImageMagick в вашей системе и rmagick gem, затем:

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

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

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

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

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

Более подробную информацию об использовании вы можете найти здесь

2 голосов
/ 17 января 2014

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

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

И:

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

Это не красиво, но пока работает.

2 голосов
/ 09 января 2012

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
...