Skip to content
Snippets Groups Projects
Unverified Commit 66105929 authored by Eugen Rochko's avatar Eugen Rochko Committed by GitHub
Browse files

Don't resize avatars/headers if their dimensions are already right (#6508)

Also don't apply "-quality 80" option which is probably the reason
for slight color differences between original and remote image
(because it would apply it twice, once on original instance, and
again on the receiving instance)
parent cbb69d41
No related branches found
No related tags found
No related merge requests found
...@@ -7,9 +7,15 @@ module AccountAvatar ...@@ -7,9 +7,15 @@ module AccountAvatar
class_methods do class_methods do
def avatar_styles(file) def avatar_styles(file)
styles = { original: '120x120#' } styles = {}
styles[:static] = { format: 'png', convert_options: '-coalesce' } if file.content_type == 'image/gif' geometry = Paperclip::Geometry.from_file(file)
styles[:original] = '120x120#' if geometry.width != geometry.height || geometry.width > 120 || geometry.height > 120
styles[:static] = { format: 'png', convert_options: '-coalesce' } if file.content_type == 'image/gif'
styles styles
rescue Paperclip::Errors::NotIdentifiedByImageMagickError
{}
end end
private :avatar_styles private :avatar_styles
...@@ -17,7 +23,7 @@ module AccountAvatar ...@@ -17,7 +23,7 @@ module AccountAvatar
included do included do
# Avatar upload # Avatar upload
has_attached_file :avatar, styles: ->(f) { avatar_styles(f) }, convert_options: { all: '-quality 80 -strip' } has_attached_file :avatar, styles: ->(f) { avatar_styles(f) }, convert_options: { all: '-strip' }
validates_attachment_content_type :avatar, content_type: IMAGE_MIME_TYPES validates_attachment_content_type :avatar, content_type: IMAGE_MIME_TYPES
validates_attachment_size :avatar, less_than: 2.megabytes validates_attachment_size :avatar, less_than: 2.megabytes
end end
......
...@@ -7,9 +7,15 @@ module AccountHeader ...@@ -7,9 +7,15 @@ module AccountHeader
class_methods do class_methods do
def header_styles(file) def header_styles(file)
styles = { original: '700x335#' } styles = {}
styles[:static] = { format: 'png', convert_options: '-coalesce' } if file.content_type == 'image/gif' geometry = Paperclip::Geometry.from_file(file)
styles[:original] = '700x335#' unless geometry.width == 700 && geometry.height == 335
styles[:static] = { format: 'png', convert_options: '-coalesce' } if file.content_type == 'image/gif'
styles styles
rescue Paperclip::Errors::NotIdentifiedByImageMagickError
{}
end end
private :header_styles private :header_styles
...@@ -17,7 +23,7 @@ module AccountHeader ...@@ -17,7 +23,7 @@ module AccountHeader
included do included do
# Header upload # Header upload
has_attached_file :header, styles: ->(f) { header_styles(f) }, convert_options: { all: '-quality 80 -strip' } has_attached_file :header, styles: ->(f) { header_styles(f) }, convert_options: { all: '-strip' }
validates_attachment_content_type :header, content_type: IMAGE_MIME_TYPES validates_attachment_content_type :header, content_type: IMAGE_MIME_TYPES
validates_attachment_size :header, less_than: 2.megabytes validates_attachment_size :header, less_than: 2.megabytes
end end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment