Force convert to JPG for preview card thumbnails to avoid animations (#7109)

* Force convert to JPG for preview card thumbnails to avoid animations

Fix #7093

* Conditionally convert to JPG only if original is GIF
Coalesce and strip on all formats to ensure no animated APNGs
This commit is contained in:
Eugen Rochko 2018-04-21 21:34:36 +02:00 committed by GitHub
parent 1a27f9f46f
commit bfe26ef67b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -34,7 +34,7 @@ class PreviewCard < ApplicationRecord
has_and_belongs_to_many :statuses has_and_belongs_to_many :statuses
has_attached_file :image, styles: { original: { geometry: '400x400>', file_geometry_parser: FastGeometryParser } }, convert_options: { all: '-quality 80 -strip' } has_attached_file :image, styles: ->(f) { image_styles(f) }, convert_options: { all: '-quality 80 -strip' }
include Attachmentable include Attachmentable
@ -52,6 +52,23 @@ class PreviewCard < ApplicationRecord
save! save!
end end
class << self
private
def image_styles(f)
styles = {
original: {
geometry: '400x400>',
file_geometry_parser: FastGeometryParser,
convert_options: '-coalesce -strip',
},
}
styles[:original][:format] = 'jpg' if f.instance.image_content_type == 'image/gif'
styles
end
end
private private
def extract_dimensions def extract_dimensions