出于某种原因,我的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。还有其他人有这个问题吗?
答案 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,具体取决于您的硬件。看起来你已经把它包括在内,所以你应该很好。