From 4bea897fa277eb3928442826e1098108590d9b0b Mon Sep 17 00:00:00 2001 From: Johannes Barre Date: Wed, 15 Aug 2012 13:48:39 +0200 Subject: [PATCH] auto-orient option added This adds a auto-orient option, which is enabled by default. I believe, most users expect their images to be rotated according to EXIF. The photo I've added to the fixtures was token by myself, I release it to the public domain. --- lib/paperclip/thumbnail.rb | 4 ++- test/fixtures/rotated.jpg | Bin 0 -> 83068 bytes test/thumbnail_test.rb | 62 +++++++++++++++++++++++++++++++++++-- 3 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 test/fixtures/rotated.jpg diff --git a/lib/paperclip/thumbnail.rb b/lib/paperclip/thumbnail.rb index 639ebf334..21d105ba5 100644 --- a/lib/paperclip/thumbnail.rb +++ b/lib/paperclip/thumbnail.rb @@ -3,7 +3,7 @@ module Paperclip class Thumbnail < Processor attr_accessor :current_geometry, :target_geometry, :format, :whiny, :convert_options, - :source_file_options, :animated + :source_file_options, :animated, :auto_orient # List of formats that we need to preserve animation ANIMATED_FORMATS = %w(gif) @@ -38,6 +38,7 @@ def initialize(file, options = {}, attachment = nil) @whiny = options[:whiny].nil? ? true : options[:whiny] @format = options[:format] @animated = options[:animated].nil? ? true : options[:animated] + @auto_orient = options[:auto_orient].nil? ? true : options[:auto_orient] @source_file_options = @source_file_options.split(/\s+/) if @source_file_options.respond_to?(:split) @convert_options = @convert_options.split(/\s+/) if @convert_options.respond_to?(:split) @@ -89,6 +90,7 @@ def transformation_command scale, crop = @current_geometry.transformation_to(@target_geometry, crop?) trans = [] trans << "-coalesce" if animated? + trans << "-auto-orient" if auto_orient trans << "-resize" << %["#{scale}"] unless scale.nil? || scale.empty? trans << "-crop" << %["#{crop}"] << "+repage" if crop trans diff --git a/test/fixtures/rotated.jpg b/test/fixtures/rotated.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8d634848fd048ef995464beb362f6ff4fc54cef9 GIT binary patch literal 83068 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 false" do + setup do + @thumb = Paperclip::Thumbnail.new(@file, :geometry => "100x50", :auto_orient => false) + end + + should "send the right command to convert when sent #make" do + @thumb.expects(:convert).with do |*arg| + arg[0] == ':source -resize "100x50" :dest' && + arg[1][:source] == "#{File.expand_path(@thumb.file.path)}[0]" + end + @thumb.make + end + + should "create the thumbnail when sent #make" do + dst = @thumb.make + assert_match /75x50/, `identify "#{dst.path}"` + end + + should "not touch the orientation information" do + dst = @thumb.make + assert_match /exif:Orientation=6/, `identify -format "%[EXIF:*]" "#{dst.path}"` + end + end + + context "Without :auto_orient => false" do + setup do + @thumb = Paperclip::Thumbnail.new(@file, :geometry => "100x50") + end + + should "send the right command to convert when sent #make" do + @thumb.expects(:convert).with do |*arg| + arg[0] == ':source -auto-orient -resize "100x50" :dest' && + arg[1][:source] == "#{File.expand_path(@thumb.file.path)}[0]" + end + @thumb.make + end + + should "create the thumbnail when sent #make" do + dst = @thumb.make + assert_match /33x50/, `identify "#{dst.path}"` + end + + should "remove the orientation information" do + dst = @thumb.make + assert_match /exif:Orientation=1/, `identify -format "%[EXIF:*]" "#{dst.path}"` + end + end + end + context "A multipage PDF" do setup do @file = File.new(fixture_file("twopage.pdf"), 'rb')