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
							
								
									86c2ceb21f
								
							
						
					
					
						commit
						85c3f7eb1b
					
				
					 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