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:
parent
1a27f9f46f
commit
bfe26ef67b
1 changed files with 18 additions and 1 deletions
|
@ -34,7 +34,7 @@ class PreviewCard < ApplicationRecord
|
|||
|
||||
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
|
||||
|
||||
|
@ -52,6 +52,23 @@ class PreviewCard < ApplicationRecord
|
|||
save!
|
||||
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
|
||||
|
||||
def extract_dimensions
|
||||
|
|
Loading…
Reference in a new issue