2011-11-13 33 views
1

由于某种原因,我的imagemagick不能处理任何PNG文件。他们都抱怨的东西,如下面的(可以很容易地使用识别-format%WX%H afile.png被复制):Imagemagick不能与PNG文件一起使用

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

JPEG格式做工精细。但不管我在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调用此lib。其他人遇到过这个问题吗?

回答

2

你需要确保你已经安装了必要的PNG库,并建立ImageMagick的这些库包括在内。

建设的ImageMagick与rmagick(在Ruby on Rails的宝石)用最好的说明在源 - http://rmagick.rubyforge.org/install-linux.html

一些附加注释,再次运行的./configure命令,或检查你的配置日志,和查找摘要部分(在上面链接的文档中指出,或者只是搜索“ImageMagick配置如下”),您会看到它正在尝试使用的库列表以及发现的内容。 :

PNG    --with-png=yes    yes 

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

最后一个最后要注意,不包括上面链接的文档中,是,你可能需要在你的./configure参数 - 禁用OpenMP的,取决于你的硬件。看起来你已经包含了它,所以你应该很好。

相关问题