diff options
author | Thorsten Claus <thorstenclaus@web.de> | 2022-06-28 22:22:29 +0300 |
---|---|---|
committer | Thorsten Claus <thorstenclaus@web.de> | 2022-07-01 14:50:01 +0300 |
commit | 492ac74819cd7efc2c92bfb948f7083095dac384 (patch) | |
tree | 8ca48c488de1472623f9eb61f9e6a32c5e6f6504 /app/uploaders | |
parent | 1b2270572b7de768d8e8a67cf0017a01a275f3c8 (diff) |
Issue #8355: Adding webp as supported file format
Converting all uploaded images to the webp format.
Diffstat (limited to 'app/uploaders')
-rw-r--r-- | app/uploaders/processed_image.rb | 2 | ||||
-rw-r--r-- | app/uploaders/unprocessed_image.rb | 22 |
2 files changed, 19 insertions, 5 deletions
diff --git a/app/uploaders/processed_image.rb b/app/uploaders/processed_image.rb index 79b61b9c7..5dfa6e5f0 100644 --- a/app/uploaders/processed_image.rb +++ b/app/uploaders/processed_image.rb @@ -12,7 +12,7 @@ class ProcessedImage < CarrierWave::Uploader::Base end def extension_allowlist - %w[jpg jpeg png gif] + %w[jpg jpeg png gif webp] end def filename diff --git a/app/uploaders/unprocessed_image.rb b/app/uploaders/unprocessed_image.rb index 6dad5f602..558202e3e 100644 --- a/app/uploaders/unprocessed_image.rb +++ b/app/uploaders/unprocessed_image.rb @@ -18,20 +18,34 @@ class UnprocessedImage < CarrierWave::Uploader::Base end def extension_allowlist - %w[jpg jpeg png gif] + %w[jpg jpeg png gif webp] end def filename - model.random_string + File.extname(@filename) if @filename + model.random_string + extension if @filename + end + + def extension + needs_converting? ? ".webp" : File.extname(@filename) + end + + def needs_converting? + extname = File.extname(@filename) + %w[.webp .gif].exclude?(extname) end process :basic_process def basic_process manipulate! do |img| - img.auto_orient - img.strip if strip_exif + img.combine_options do |i| + i.auto_orient + i.strip if strip_exif + end + img = yield(img) if block_given? + + img.format("webp") if needs_converting? img end end |