Imagemagick不使用png文件

时间:2011-11-13 04:10:02

标签: ruby-on-rails-3 macos imagemagick

出于某种原因,我的imagemagick无法处理任何png文件。他们都抱怨以下内容(可以使用identify -format%wx%h afile.png轻松复制):

identify: memory allocation failed `afile.png' @ error/png.c/ReadOnePNGImage/2123.
identify: corrupt image `afile.png' @ error/png.c/ReadPNGImage/3668.

Jpegs工作正常。但无论我在photoshop上创建什么png文件或下载网络它都不会工作。

我正在使用mac os x 10.5和imagemagick 6.7.1-0 2011-08-01 Q8

CONFIGURE     ./configure  '--prefix=/usr/local' '--disable-static' '--with-modules' '--without-perl' '--without-magick-plus-plus' '--with-quantum-depth=8' '--disable-openmp' '--with-gs-font-dir=/usr/local/share/ghostscript/fonts' 'LDFLAGS=-L/usr/local/lib' 'CPPFLAGS=-I/usr/local/include'
CONFIGURE_PATH /usr/local/etc/ImageMagick/
COPYRIGHT     Copyright (C) 1999-2011 ImageMagick Studio LLC
CPPFLAGS      -I/usr/local/include/ImageMagick
CXX           g++
CXXFLAGS      -g -O2 -D_THREAD_SAFE -pthread
DEFS          -DHAVE_CONFIG_H
DELEGATES     bzlib freetype jpeg jng lcms2 png tiff x11 xml zlib
DISTCHECK_CONFIG_FLAGS 'CPPFLAGS=-I/usr/local/include' 'LDFLAGS=-L/usr/local/lib' --disable-deprecated --with-umem=no --with-autotrace=no --with-gslib=no --with-fontpath= --with-gs-font-dir=/usr/local/share/ghostscript/fonts --with-perl=no
DOCUMENTATION_PATH /usr/local/share/doc/ImageMagick-6.7.1/
EXEC-PREFIX   /usr/local
EXECUTABLE_PATH /usr/local/bin
FEATURES      
FILTER_PATH   /usr/local/lib/ImageMagick-6.7.1/modules-Q8/filters
HOST          i386-apple-darwin9.8.0
LDFLAGS       -L/usr/local/lib -L/usr/local/lib -L/usr/X11/lib -R/usr/X11/lib
LIB_VERSION   0x671
LIB_VERSION_NUMBER 6,7,1,0
LIBRARY_PATH  /usr/local/lib/ImageMagick-6.7.1
LIBS          -lMagickCore -llcms2 -ltiff -lfreetype -ljpeg -lXext -lSM -lICE -lX11 -lXt -lbz2 -lz -lm -lpthread 
NAME          ImageMagick

我用Google搜索了一切,但似乎无法掌握它。我可以在Imagemagick中更改设置,但我无法将params传递给函数调用,因为我通过rails第三方gem上的ruby调用此lib。还有其他人有这个问题吗?

1 个答案:

答案 0 :(得分:2)

您需要确保已安装必需的PNG库并使用包含的库构建ImageMagick。

构建ImageMagick以与rmagick(Ruby on Rails gem)一起使用的最佳指示源于 - http://rmagick.rubyforge.org/install-linux.html

一些附加说明,再次运行./configure命令,或检查配置日志,并查找摘要部分(在上面链接的文档中记录或只搜索“ImageMagick配置如下”。在那里你将看到它试图使用的库列表以及找到的库。您应该看到如下行:

PNG               --with-png=yes                yes

如果它说--with-png = no,或者它的值是“no”,那么这就是你的问题。您需要安装png库。并确保您也安装了png-devel库,因为从源代码构建需要它们。现在,当你运行./configure时,它应该发现png库并将它们包含在构建中。

上面链接的文档中未涉及的最后一个最后一点是,您可能需要在./configure参数中包含--disable-openmp,具体取决于您的硬件。看起来你已经把它包括在内,所以你应该很好。