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 APNGsgh/stable
parent
1a27f9f46f
commit
bfe26ef67b
|
@ -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
|
||||||
|
|
Reference in New Issue