Forum: Ruby on Rails Does animated gif will work properly using RMagick?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
dare r. (Guest)
on 2008-12-04 10:56
Dear all,

I have used RMagic to read and write a image while uploading. An
animated gif was read from my local machine and was written in my images
folder using RMagick. But the animated gif which i read was witten in my
folder without animation. What should i do to write the gif image with
animation.

Here is my code to read and write image while uploading.

image = params[:image][:blob]
image1=params[:image][:blob].original_filename
imgs = Magick::Image.from_blob(image.read)
img = imgs.first
File.open(RAILS_ROOT + "/public/images/banner/" + image1 , "wb") do |f|
  f.write(img.to_blob)
end

could anyone suggest me to solve this issue


Thanks in advance,

Regards,
Jose Martin
Rob B. (Guest)
on 2008-12-04 15:47
(Received via mailing list)
On Dec 4, 2008, at 3:56 AM, dare ruby wrote:
> Here is my code to read and write image while uploading.
> could anyone suggest me to solve this issue
>
>
> Thanks in advance,
>
> Regards,
> Jose Martin

imgs is an array of your animation frames.  When you take imgs.first,
you get only the initial frame.

Try something like this (NOTE: Only run inside my head which tends to
leak and has no garbage collector. ;-)

imgs = Magick::ImageList.from_blob(image.read)
imgs.write(RAILS_ROOT + "/public/images/banner/" + image1)


Or, if you don't actually do anything with the image:

File.open(RAILS_ROOT + "/public/images/banner/" + image1 , "wb") do |f|
   f.write image.read
end

...and avoid all the ImageMagick overhead.

-Rob


Rob B.    http://agileconsultingllc.com
removed_email_address@domain.invalid
dare r. (Guest)
on 2008-12-12 06:29
Dear Rob,

Thanks a lot, it works fine now with your below code


> File.open(RAILS_ROOT + "/public/images/banner/" + image1 , "wb") do |f|
>    f.write image.read
> end
>
> ...and avoid all the ImageMagick overhead.
>
> -Rob

Regards,
jose Martin
This topic is locked and can not be replied to.