diff options
author | Thibaut Girka <thib@sitedethib.com> | 2019-05-04 16:37:26 +0200 |
---|---|---|
committer | Thibaut Girka <thib@sitedethib.com> | 2019-05-04 16:37:26 +0200 |
commit | 33c80e07838d932efc6214cb1642cefaeb624b67 (patch) | |
tree | 51cae2d9096888cc27ae38ec4b0ceceb1853bb73 /lib/paperclip | |
parent | 2c2f649200ba5b742ba9d17ac5ba553c752b59aa (diff) | |
parent | c88d9e524b02cba895de9bdb7cba0e29e37703d5 (diff) |
Merge branch 'master' into glitch-soc/merge-upstream
Conflicts: - app/models/media_attachment.rb
Diffstat (limited to 'lib/paperclip')
-rw-r--r-- | lib/paperclip/blurhash_transcoder.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/paperclip/blurhash_transcoder.rb b/lib/paperclip/blurhash_transcoder.rb new file mode 100644 index 000000000..08925a6dd --- /dev/null +++ b/lib/paperclip/blurhash_transcoder.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +module Paperclip + class BlurhashTranscoder < Paperclip::Processor + def make + return @file unless options[:style] == :small + + pixels = convert(':source RGB:-', source: File.expand_path(@file.path)).unpack('C*') + geometry = options.fetch(:file_geometry_parser).from_file(@file) + + attachment.instance.blurhash = Blurhash.encode(geometry.width, geometry.height, pixels, options[:blurhash] || {}) + + @file + end + end +end |