FloatDomainError (Бесконечность) - PullRequest
7 голосов
/ 30 августа 2011

Я использую carrierwave и mini_magick для загрузки изображений.В разработке все в порядке, но в процессе работы он поднимает FloatDomainError (Infinity) при попытке загрузить изображениеУ меня есть несколько проектов, размещенных на одном сервере, и все в порядке с загрузкой.Я использую Rails 3.0.10.Любые идеи, как я могу это исправить?Спасибо

Ответы [ 4 ]

10 голосов
/ 14 октября 2011

У меня была такая же проблема.Проблема в mini_magick.Если файл изображения, в котором он запускается 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 для отключения этих предупреждающих сообщений.Я разветвлял mini_magick на https://github.com/fschwahn/mini_magick и добавил тихую опцию.Я надеюсь, что это изменение будет внесено (или проблема будет исправлена ​​более элегантно).Однако сейчас вы можете использовать мой форк, добавив в свой Gemfile следующее:

gem 'mini_magick', :git => 'git://github.com/fschwahn/mini_magick.git'
1 голос
/ 05 ноября 2013

Я использовал пакет Ubuntu Imagemagick версии 6.7.Я обновился до 6.8, следуя инструкциям здесь: https://askubuntu.com/questions/267746/how-can-i-install-the-latest-upstream-version-of-imagemagick-without-compiling, и это сработало.

1 голос
/ 30 августа 2011

Исправлено это с заменой resize_and_fill на resize_and_pad.Все еще не понимаю его странное поведение.

0 голосов
/ 03 января 2015

Я получил эту ошибку с последним обновлением gem , когда сгенерировал миниатюру изображения для моего файла PDF.

Этот код не работает:

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

Iрешил это, заменив порядок строк.Ключ был в том, что перед изменением размера MiniMagic сначала нужно преобразовать миниатюру в изображение, а после этого попытаться изменить размер.

Вот решение , которое сработало для меня.Может быть, это кому-нибудь поможет.

  process :convert => :png
  process :resize_to_fill => [260, 192]
...