반송파 및 mini_magick을 사용하여 이미지를 업로드합니다. 개발 중에는 문제가 없지만 제작시 이미지를 업로드하려고하면 FloatDomainError (Infinity)
이 발생합니다. 나는 동일한 서버에서 호스팅되는 여러 프로젝트를 가지고 있으며 업로드하는 데는 문제가 없습니다. Rails 3.0.10을 사용합니다. 어떤 아이디어로 해결할 수 있습니까? 감사합니다FloatDomainError (Infinity)
답변
나는 동일한 문제가있었습니다. 문제는 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
입니다. 이 결과는 0으로 나누기 때문에 언급 한 예외가 발생합니다. 이것이 일부 이미지에서만 실패하는 이유입니다.
identify
에는 -quiet
옵션이있어 이러한 경고 메시지가 표시되지 않습니다. 나는 https://github.com/fschwahn/mini_magick에 mini_magick을 분기하고 조용한 옵션을 추가했습니다. 이 변경 사항이 반영되기를 바랍니다 (또는 문제가보다 세련된 방식으로 수정 될 것입니다). 그러나 지금 당신은 당신의 Gemfile에 다음을 추가하여 내 포크를 사용할 수 있습니다 : 나는 우분투있는 Imagemagick 패키지 버전 6.7을 사용했다
gem 'mini_magick', :git => 'git://github.com/fschwahn/mini_magick.git'
resize_and_fill
을 resize_and_pad
으로 바꾸는 것을 수정했습니다. 여전히 이상한 행동을 이해하지 못합니다.
실제로 'resize_to_fill'과 resize_to_fad는 서로 다른 효과가 있습니다. 하나를 다른 것으로 대체하는 것은 응용 프로그램을 어떤 가격으로 실행시키는 것일뿐입니다. –
동의합니다. 그건 단지 일시적인 해결책이었습니다. 희망은 @ fabi의 솔루션은 지금 작동 –
. 나는 여기에 지침에 따라 6.8로 업그레이드했다 : https://askubuntu.com/questions/267746/how-can-i-install-the-latest-upstream-version-of-imagemagick-without-compiling 그리고 그것은 효과가 있었다.
내 PDF 파일의 이미지 미리보기 이미지를 생성 할 때 최신 보석 업데이트으로이 오류가 발생했습니다.
이 코드 실패
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]
답장을 보내 주셔서 감사합니다. 빨리 포크를 시험해 보겠습니다. 현재 프로젝트에서 저는 대신 rmagick을 사용하기 시작했습니다. –
변경 사항을 가져오고 새 버전의 mini_magick이 릴리스되었으므로 최신 버전의 mini_magick을 사용하는 경우 문제가 없어집니다. – fabi
감사합니다. 내가 필요하면 빨리 시험해 볼게. =) –