我沒有測試這一點,但你應該能夠使用「convert_options」參數,像這樣:
:convert_options => { :all => ‘-colorspace Gray’ }
看一看https://github.com/thoughtbot/paperclip/blob/master/lib/paperclip/thumbnail.rb
我personnaly用我自己的處理器。
在型號:
has_attached_file :logo,
:url => PaperclipAssetsController.config_url,
:path => PaperclipAssetsController.config_path,
:styles => {
:grayscale => { :processors => [:grayscale] }
}
在lib目錄下:
module Paperclip
# Handles grayscale conversion of images that are uploaded.
class Grayscale < Processor
def initialize file, options = {}, attachment = nil
super
@format = File.extname(@file.path)
@basename = File.basename(@file.path, @format)
end
def make
src = @file
dst = Tempfile.new([@basename, @format])
dst.binmode
begin
parameters = []
parameters << ":source"
parameters << "-colorspace Gray"
parameters << ":dest"
parameters = parameters.flatten.compact.join(" ").strip.squeeze(" ")
success = Paperclip.run("convert", parameters, :source => "#{File.expand_path(src.path)}[0]", :dest => File.expand_path(dst.path))
rescue PaperclipCommandLineError => e
raise PaperclipError, "There was an error during the grayscale conversion for #{@basename}" if @whiny
end
dst
end
end
end
這可能不是必需的簡單的灰度轉換100%,但它的工程!
抱歉耽擱,感謝偉大的答案! – jyoseph 2010-12-17 02:24:50
感覺好像在wayyy中更容易添加轉換選項 ':styles => {:gray =>「450x250」},:convert_options => {:gray =>「-blur 0x8」}' – Ben 2013-10-21 21:02:24