Search code examples
ruby-on-railsrubyimagemagickrmagick

rmagick is there a way to convert image in memory


From Rmagick guide:

Converting an image to another format

Converting an image to another format is as simple as writing the image to a file.

ImageMagick uses the output filename suffix (".jpg" for JPEG, ".gif" for GIF, for example) or prefix ("ps:" for PostScript, for example) to determine the format of the output image.

Is there a way to convert image in memory?


Solution

  • # assuming you have an image
    # img = Magick::Image.new( 100, 100 )
    img = Magick::Image.from_blob( img.to_blob { self.format = "png" } )
    

    Source: RMagick Docs

    Here's an example on how to give it to the user

    image.format = "png"
    send_data image.to_blob,
        :filename => "woohoo.png",
        :disposition => 'inline',
        :quality => 90,
        :type => 'image/png'