FIX: automagic image downsizing wasn't working for GIFs...

This commit is contained in:
Régis Hanol 2015-11-09 15:09:08 +01:00
parent 448a1413d3
commit d541018bb2
1 changed files with 6 additions and 2 deletions

View File

@ -67,10 +67,14 @@ class UploadsController < ApplicationController
# allow users to upload large images that will be automatically reduced to allowed size # allow users to upload large images that will be automatically reduced to allowed size
if SiteSetting.max_image_size_kb > 0 && FileHelper.is_image?(filename) && File.size(tempfile.path) > 0 if SiteSetting.max_image_size_kb > 0 && FileHelper.is_image?(filename) && File.size(tempfile.path) > 0
attempt = 2
allow_animation = type == "avatar" ? SiteSetting.allow_animated_avatars : SiteSetting.allow_animated_thumbnails allow_animation = type == "avatar" ? SiteSetting.allow_animated_avatars : SiteSetting.allow_animated_thumbnails
attempt = 5
while attempt > 0 && File.size(tempfile.path) > SiteSetting.max_image_size_kb.kilobytes while attempt > 0 && File.size(tempfile.path) > SiteSetting.max_image_size_kb.kilobytes
OptimizedImage.downsize(tempfile.path, tempfile.path, "80%", filename: filename, allow_animation: allow_animation) image_info = FastImage.new(tempfile.path) rescue nil
w, h = *(image_info.try(:size) || [0, 0])
break if w == 0 || h == 0
dimensions = "#{(w * 0.8).floor}x#{(h * 0.8).floor}"
OptimizedImage.downsize(tempfile.path, tempfile.path, dimensions, filename: filename, allow_animation: allow_animation)
attempt -= 1 attempt -= 1
end end
end end