CarrierWave: How to remove GIF animation

Posted Over 9 years ago. Visible to the public. Repeats.

When accepting GIF images, you will also accept animated GIFs. Resizing them can be a time-consuming task and will block a Rails worker until the image is processed.

Save yourself that trouble, and simply tell ImageMagick to drop any frames but the first one.

Add the following to your uploader class:

process :remove_animation

private

def remove_animation
  if content_type == 'image/gif'
    manipulate! { |image| image.collapse! }
  end
end

You may also define that process for specific versions only (e.g. only for thumbs) -- when called on the class level, it will happen for each version.

Arne Hartherz
Last edit
Over 1 year ago
Michael Leimstädtner
License
Source code in this card is licensed under the MIT License.
Posted by Arne Hartherz to makandra dev (2014-12-22 12:36)