ruby-on-rails - Rails回形针如何使用ImageMagick的滤镜选项?

标签 ruby-on-rails imagemagick paperclip

我最近使用Rails实现了Paperclip,并想尝试ImageMagick的一些过滤器选项,例如blur。我还没有找到任何有关如何执行此操作的示例。它是否通过:style传递为另一种选择?

:styles => { :medium => "300x300#", :thumb => "100x100#" }

@plang的答案是正确的,但我想为模糊提供确切的解决方案,以防万一有人在寻找并发现以下问题:
:convert_options => { :all => "-blur 0x8" }
// -blur  {radius}x{sigma} 

哪个改变了这个:

对此:

最佳答案

我没有对此进行测试,但是您应该可以使用“convert_options”参数,如下所示:

:convert_options => { :all => ‘-colorspace Gray’ }

看看https://github.com/thoughtbot/paperclip/blob/master/lib/paperclip/thumbnail.rb

我个人使用我自己的处理器。

型号中:
  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%必需的,但它可以工作!

关于ruby-on-rails - Rails回形针如何使用ImageMagick的滤镜选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4435922/

相关文章:

ruby-on-rails - EC2 中的 Ruby 多线程导致奇怪的行为

ruby-on-rails - 将 "Drop In"动态内容放入现有静态站点的最佳方法

imagemagick - 如何使用 iMagick 将图像叠加在另一个图像之上

ubuntu - imagemagick 构建每 A4 页两张图像的文档

ruby-on-rails - 从早期版本升级到 3.x(S3 存储)后,回形针不生成缩略图/样式/大小

ruby-on-rails - 使用Rails接收电子邮件(ActionMailer)以处理图像附件

ruby-on-rails - ElasticSearch在生产环境中的行为有所不同

javascript - Thumbs_up Gem,ajax 的一个小问题

image - 在 Node.js 中对图像应用半透明水印

ruby-on-rails - 未调用自定义回形针处理器