7

我使用carrierwave 和mini_magick 上传图片。在开发中一切都很好,但是在生产中,FloatDomainError (Infinity)当我尝试上传图像时它会出现。我有几个项目托管在同一台服务器上,上传一切都很好。我使用 Rails 3.0.10。任何想法我该如何解决?谢谢

4

4 回答 4

10

我有同样的问题。问题是mini_magick。如果它运行的图像文件identify是错误的,则 identify 会输出某种错误,例如

identify: Corrupt JPEG data: 7929 extraneous bytes before marker 0xed `image.jpg' @ warning/jpeg.c/EmitMessage/230.
11811 8665

mini_magick尝试将错误消息解析为维度,结果为0. 这会导致除以零,从而导致您提到的异常。这就是为什么它只在某些图像上失败的原因。

identify可以-quiet选择关闭这些警告消息。我在https://github.com/fschwahn/mini_magick分叉了 mini_magick并添加了 quiet 选项。我希望这种改变会被引入(或者问题会以更优雅的方式得到解决)。但是,现在您可以通过将以下内容添加到 Gemfile 来使用我的 fork:

gem 'mini_magick', :git => 'git://github.com/fschwahn/mini_magick.git'
于 2011-10-14T12:59:36.023 回答
1

通过替换resize_and_fill为修复了该问题resize_and_pad。仍然不明白它的奇怪行为。

于 2011-08-30T13:32:05.340 回答
1

我使用的是 Ubuntu Imagemagick 软件包版本 6.7。我按照此处的说明升级到 6.8:https ://askubuntu.com/questions/267746/how-can-i-install-the-latest-upstream-version-of-imagemagick-without-compiling并且它有效。

于 2013-11-05T19:49:37.827 回答
0

当我为我的 pdf 文件生成图像缩略图时,我在最新的 gem 更新时遇到了这个错误。

此代码失败:

version :thumb do
  process :resize_to_fill => [260, 192]
  process :convert => :png
  process :set_content_type
  process :thumbnail_pdf
end

我通过替换行的顺序来解决它。关键是在调整大小之前MiniMagic应该先将缩略图转换为图像,然后再尝试调整大小。

这是对我有用的解决方案。也许它会对某人有所帮助。

  process :convert => :png
  process :resize_to_fill => [260, 192]
于 2015-01-03T17:26:24.083 回答