Permalink
Browse files

Added the 'paperclip_extended' stuff for supplying extra commands to …

…ImageMagick
  • Loading branch information...
1 parent 715ff88 commit 3b8ed8df58a5e80ad590d732ce3f4c002dce6646 @jyurek jyurek committed Aug 21, 2008
Showing with 9 additions and 5 deletions.
  1. +3 −1 lib/paperclip/attachment.rb
  2. +6 −4 lib/paperclip/thumbnail.rb
@@ -15,7 +15,7 @@ def self.default_options
}
end
- attr_reader :name, :instance, :styles, :default_style
+ attr_reader :name, :instance, :styles, :default_style, :convert_options
# Creates an Attachment object. +name+ is the name of the attachment, +instance+ is the
# ActiveRecord object instance it's attached to, and +options+ is the same as the hash
@@ -34,6 +34,7 @@ def initialize name, instance, options = {}
@default_style = options[:default_style]
@storage = options[:storage]
@whiny_thumbnails = options[:whiny_thumbnails]
+ @convert_options = options[:convert_options]
@options = options
@queued_for_delete = []
@queued_for_write = {}
@@ -247,6 +248,7 @@ def post_process #:nodoc:
@queued_for_write[name] = Thumbnail.make(@queued_for_write[:original],
dimensions,
format,
+ convert_options[name],
@whiny_thumnails)
rescue PaperclipError => e
@errors << e.message if @whiny_thumbnails
View
@@ -2,18 +2,19 @@ module Paperclip
# Handles thumbnailing images that are uploaded.
class Thumbnail
- attr_accessor :file, :current_geometry, :target_geometry, :format, :whiny_thumbnails
+ attr_accessor :file, :current_geometry, :target_geometry, :format, :whiny_thumbnails, :convert_options
# Creates a Thumbnail object set to work on the +file+ given. It
# will attempt to transform the image into one defined by +target_geometry+
# which is a "WxH"-style string. +format+ will be inferred from the +file+
# unless specified. Thumbnail creation will raise no errors unless
# +whiny_thumbnails+ is true (which it is, by default.
- def initialize file, target_geometry, format = nil, whiny_thumbnails = true
+ def initialize file, target_geometry, format = nil, convert_options = nil, whiny_thumbnails = true
@file = file
@crop = target_geometry[-1,1] == '#'
@target_geometry = Geometry.parse target_geometry
@current_geometry = Geometry.from_file file
+ @convert_options = convert_options
@whiny_thumbnails = whiny_thumbnails
@current_format = File.extname(@file.path)
@@ -24,8 +25,8 @@ def initialize file, target_geometry, format = nil, whiny_thumbnails = true
# Creates a thumbnail, as specified in +initialize+, +make+s it, and returns the
# resulting Tempfile.
- def self.make file, dimensions, format = nil, whiny_thumbnails = true
- new(file, dimensions, format, whiny_thumbnails).make
+ def self.make file, dimensions, format = nil, convert_options = nil, whiny_thumbnails = true
+ new(file, dimensions, format, convert_options, whiny_thumbnails).make
end
# Returns true if the +target_geometry+ is meant to crop.
@@ -61,6 +62,7 @@ def transformation_command
scale, crop = @current_geometry.transformation_to(@target_geometry, crop?)
trans = "-scale \"#{scale}\""
trans << " -crop \"#{crop}\" +repage" if crop
+ trans << " #{convert_options}" if convert_options
trans
end
end

2 comments on commit 3b8ed8d

Contributor

jamesbrooks replied Aug 26, 2008

Adding of convert_options has broken paperclip unless :convert_options => {} is added to the has_attached_file options. Fix by adding || {} to the end of line 37 in lib/paperclip/attachment.rb

Contributor

jamesbrooks replied Aug 26, 2008

Pull request sent w/ fix

Please sign in to comment.