【问题标题】:Rails 3 & Paperclip: "not recognized by the 'identify' command"Rails 3 和 Paperclip:“'identify' 命令无法识别”
【发布时间】:2011-10-20 09:21:30
【问题描述】:

一些系统细节:

  • Mac OS X Lion 10.7.2、Rails 3、Paperclip gem。
  • ImageMagick 6.7.3-0,使用/opt/local/bin 中的 MacPorts 安装的二进制文件。
  • 在开发环境中使用 WEBrick。

我正在尝试上传应该缩小为缩略图的照片。当我这样做时,原始上传的文件被保存并且可以通过 HTTP 正确访问。当我尝试访问缩略图版本时,我收到此错误:

Routing Error
No route matches "[file_URL]"

在此之前,当上传有效的 PNG 文件时,我在 WEBrick 日志中看到此错误:

[paperclip] An error was received while processing: #<Paperclip::NotIdentifiedByImageMagickError: /var/folders/n4/62q22gb52rjd0h13cx_j8vv40000gq/T/stream20111020-24984-17560xt-0.png is not recognized by the 'identify' command.>

which identify 输出:

/opt/local/bin/identify

使用上传文件的路径调用identify,将文件正确识别为PNG文件。

我确认rails server 启动开发环境。我在config/environments/development.rb中添加了以下内容:

Paperclip.options[:command_path] = "/opt/local/bin"

我的照片模型有以下内容:

class Photo < ActiveRecord::Base
  has_attached_file :file, :default_style => :view, :styles => {
    :view => { :geometry => '520x390>', :format => 'jpg' },
    :preview => { :geometry => '160x120>', :format => 'jpg' } }
  validates_attachment_content_type :file,
    :content_type => [ 'image/jpeg', 'image/pjpeg', 'image/png' ]
end

我的照片控制器:

class PhotosController < ApplicationController
  # ...
  def create
    @photo = Photo.create params[:photo]
  end
end

就像我说的,我可以访问 URL 路径 system/files/:id/original 中的原始图像,但是我想要的调整大小的版本无法访问,并且在文件系统中找不到。 WEBrick 的日志表明 Paperclip 甚至无法让 ImageMagick 在调整图像大小之前对其进行识别。

有什么想法吗?提前致谢!

【问题讨论】:

标签: ruby-on-rails macos imagemagick paperclip


【解决方案1】:

如上所述,这可能是一个重复的问题,但这个问题是由 ImageMagick 6.7.3-0 中最近在 6.7.3-1 中修复的错误引起的。 MacPorts 也已更新为新版本。

在 6.7.3-0 中,在文件路径中声明帧号(例如 identify /path/to/file.png[0])导致 ImageMagick 出现段错误(“Segmentation fault 11”)。 Paperclip 指定帧号以确保其处理图像文件的第一帧或第一页。

ImageMagick 的新版本解决了这个问题。 MacPorts 上提到了这个错误:

https://trac.macports.org/ticket/31643

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多