ruby-vips icon indicating copy to clipboard operation
ruby-vips copied to clipboard

Thumbnail gif file with `crop: :centre` always creates 1 scene gif

Open aglushkov opened this issue 1 year ago • 1 comments

Describe the bug

Vips::Image.thumbnail("filename.gif[n=-1]", 200, height: 200, crop: :centre) with animated GIF file saves static file with 1 scene only.

Without crop: :centre it saves animated file correctly

I used file https://i.pinimg.com/originals/96/50/f0/9650f01cd3334952b075f8cf55bedd60.gif for testing

To Reproduce Steps to reproduce the behavior: Run ruby script

# frozen_string_literal: true

require "bundler/inline"

gemfile(true) do
  source "https://rubygems.org"

  git_source(:github) { |repo| "https://github.com/#{repo}.git" }

  gem "ruby-vips"
  gem 'down'
end

GLib::logger.level = Logger::DEBUG

tempfile = Down.download("https://i.pinimg.com/originals/96/50/f0/9650f01cd3334952b075f8cf55bedd60.gif")

resized_image = Vips::Image.thumbnail("#{tempfile.path}[n=-1]", 400, height: 400, crop: :centre)
resized_image.write_to_file "/tmp/rabbit-with-crop.gif"
`browse /tmp/rabbit-with-crop.gif`

Expected behavior File must be animated with all scenes cropped

Additional context I have libvips 8.13rc1 compiled with cgif

aglushkov avatar Jul 20 '22 07:07 aglushkov

Hi @aglushkov,

vipsthumbnail has logic for shrinking animated images. but not for cropping them. There's an enhancement issue here https://github.com/libvips/libvips/issues/2668

jcupitt avatar Jul 20 '22 09:07 jcupitt