Sierra(beta)上的ImageMagick路径错误

时间:2016-08-30 06:27:05

标签: macos terminal imagemagick imagemagick-convert

我正试图在iOS应用程序的appIcon上添加水印。为此,我正在关注Ray's博客,我使用here的二进制版本安装了ImageMagick。我还使用sudo nano /etc/paths在我的路径中添加了 / bin / lib ,因此convert命令似乎正在运行。

问题陈述: 当我从教程中使用 convert 命令时,我收到以下错误

dyld: Library not loaded: /ImageMagick-7.0.1/lib/libMagickCore-7.Q16HDRI.0.dylib
  Referenced from: /Users/Username/Library/ImageMagick-7.0.1/bin/convert
  Reason: image not found
Abort trap: 6

即使图像存在,错误仍是“未找到图像”。任何想法社区?

3 个答案:

答案 0 :(得分:15)

我遇到了同样的问题。对我有用的是从$ PATH中删除有问题的先前安装,然后重新安装:

brew update && brew upgrade
brew remove imagemagick
brew install imagemagick

然后当我跑:

which convert

我终于得到了brew版本:

/usr/local/bin/convert

当我从教程中运行命令时:

convert AppIcon60x60@2x.png -fill white -font Times-Bold -pointsize 18 -gravity south -annotate 0 "Hello World" test.png

我收到了Hello World图片。

答案 1 :(得分:3)

更新

我已经检查了你收到包裹的页面,看起来我的假设是正确的 - 你错过了一个路径变量,MAGICK_HOME。幸运的是,它似乎很容易纠正。

您需要获取ImageMagick所在目录的绝对路径。在紧要关头,您可以搜索到处 - 从命令行运行它:

find / -type d -name "ImageMagick-7.0.3" 2>/dev/null

它应该只回答一个ImageMagick目录(除非你在不同的地方安装了多次,在这种情况下你需要确定两个中哪一个是“正确”的包)。

作为替代方案,如果您发出命令

which convert

它应该告诉你convert可执行文件的完整路径,它应该在ImageMagick安装的bin子目录中。

假设它说目录是

/Users/lserni/Desktop/test/ImageMagick-7.0.3

然后在终端中使用ImageMagick之前,您需要发出以下命令:

export HOME=/Users/lserni/Desktop/test
export MAGICK_HOME="$HOME/ImageMagick-7.0.3"
export DYLD_LIBRARY_PATH="$MAGICK_HOME/lib/"

现在你可以试试ImageMagick:

convert logo: logo.gif
identify logo.gif

它应该提供类似的东西,

logo.gif GIF 640x480 640x480+0+0 8-bit sRGB 256c 28.6KB ...

原始答案

  

dyld:未加载库:/ ImageMagick-7.0.1/lib/libMagickCore-7.Q16HDRI.0.dylib    原因:未找到图像

有几个可能的原因。最让我印象深刻的是库,实际上,不是“那里” - “那里”意味着卷根中名为“ImageMagick-7.0.1”的目录即可。该库可能位于/usr/lib/opt,但上述错误表示它正在/ImageMagick-7.0.1中查找。

尝试在终端中键入此内容以查询该路径:

ls -la /ImageMagick-7.0.1/lib/libMagickCore-7.Q16HDRI.0.dylib

我发现了一个引用意味着如果路径包含错误的路径,你可以从可执行文件重定向ldpath 但我还没有尝试过

install_name_tool -change /ImageMagick-7.0.1/lib/libMagickCore-7.Q16HDRI.0.dylib /usr/local/lib/libMagickCore-7.Q16HDRI.0.dylib /usr/local/bin/NameOfImageMagickBinaryYou'ReCalling

(二进制文件可能是/usr/local/bin/convert

......并且,可能还有其他库和其他IM二进制文件存在同样的问题。

另一种可能性是库在那里,但它试图加载其他不在那里的库。 libPNG,JPEGlib,libTIFF等都是可能的候选者。虽然您可以使用strace等工具深入研究此事,但最好从头开始检查安装。

最后,您可能在dylib或导致该dylib的路径中有权限错误。如果以root身份安装(或安装以root身份运行),则会发生这种情况,库目录是使用更安全的权限创建的(例如750而不是755),然后您将应用程序作为不同和/或权限较低的用户运行/基。

如果您通过Homebrew安装了ImageMagick,请同时检查HB的配置路径。您的症状非常让我想起如果安装脚本使用--prefix=而不是--prefix=/usr/local运行会发生什么。

答案 2 :(得分:2)

恕我直言,安装,配置,卸载 ImageMagick 以及OS X上的许多其他软件包的最简单方法是使用自制软件

第1步

转到homebrew website并复制单行并将其粘贴到终端并运行。

第2步

现在,确定要搜索和安装的软件包 - ImageMagick Redis pandoc gawk 等,并使用以下命令之一查找包:

brew search magick
brew search redis
brew search gawk

第3步

现在,检查 ImageMagick

的选项
brew options imagemagick

示例输出

--with-fftw
    Compile with FFTW support
--with-fontconfig
    Build with fontconfig support
--with-ghostscript
    Build with ghostscript support
--with-hdri
    Compile with HDRI support
--with-liblqr
    Build with liblqr support
--with-librsvg
    Build with librsvg support
--with-libwmf
    Build with libwmf support
--with-little-cms
    Build with little-cms support
--with-little-cms2
    Build with little-cms2 support
--with-opencl
    Compile with OpenCL support
--with-openexr
    Build with openexr support
--with-openjpeg
    Build with openjpeg support
--with-openmp
    Compile with OpenMP support
--with-pango
    Build with pango support
--with-perl
    Compile with PerlMagick
--with-quantum-depth-16
    Compile with a quantum depth of 16 bit
--with-quantum-depth-32
    Compile with a quantum depth of 32 bit
--with-quantum-depth-8
    Compile with a quantum depth of 8 bit
--with-webp
    Build with webp support
--with-x11
    Build with x11 support
--with-zero-configuration
    Disables depending on XML configuration files
--without-freetype
    Build without freetype support
--without-jpeg
    Build without jpeg support
--without-libpng
    Build without libpng support
--without-libtiff
    Build without libtiff support
--without-magick-plus-plus
    disable build/install of Magick++
--without-modules
    Disable support for dynamically loadable modules
--without-threads
    Disable threads support
--HEAD
    Install HEAD version

第4步

使用您选择的选项进行安装:

brew install imagemagick --with-fftw --with-openmp --with-pango

然后一切都很好。

更新和升级软件包

如果您要更新homebrew的副本并更新所有套餐,请使用:

brew update && brew upgrade

删除包

如果您要删除 ImageMagick ,请使用:

brew rm imagemagick

使用不同选项重新安装包

例如,如果要重新安装量子深度为32(Q32)的 ImageMagick ,请使用:

brew reinstall imagemagick --with-quantum-depth-32

疑难解答

如果您对自制有任何问题,只要问好医生出了什么问题,您就会得到一些不好的报告:

brew doctor

整洁的包裹

我最喜欢的一些套餐是:

ack,ansiweather,arpack,astyle,atk,atkmm,autoconf,basex,bash,boost,c-ares,cairo,cairomm,cimg,cmake,coreutils,cpanminus,curl,dbus,dcraw,doxygen,eigen,epstool ,exact-image,exiftool,exiv2,faac,feh,ffmpeg,fftw,findutils,flac,fltk,fontconfig,fortune,freeimage,freetype,fswatch,gawk,gcc,gd,gdb,gdbm,gdk-pixbuf,geoip,gettext ,ghostscript,giflib,gifsicle,gl2ps,glib,glibmm,glpk,gmp,gnu-sed,gnuplot,gnutls,gobject-introspection,graphicsmagick,grep,gsettings-desktop-schemas,gtk + 3,harfbuzz,hdf5,hicolor-icon -theme,hiredis,icu4c,ilmbase,imagemagick,imlib2,isl,jasper,jbig2dec,jhead,jpeg,jpeg-turbo,jq,lame,leptonica,lftp,libagg,libbtbb,libcroco,libepoxy,libevent,libexif,libffi,libgcrypt ,libgpg-error,libgsf,libmpc,libogg,libpng,librsvg,libsigc ++,libsvg,libsvg-cairo,libtasn1,libtiff,libtool,libusb,libusb-compat,libvo-aacenc,libvorbis,libxml2,libyaml,lighttpd,little-cms ,little-cms2,llvm,lua,lynx,l z4,mad,matplotlib,metis,mpfr,nanomsg,net-snmp,netpbm,nettle,ngrep,nmap,node,numpy,octave,oniguruma,opencv3,openexr,openjpeg,openjpeg21,openssl,orc,p7zip,pandoc,pango, pangomm,parallel,pcre,pdfgrep,perl,perlmagick,php56,php56-amqp,php56-imagick,pixman,pkg-config,platypus,plotutils,pngcheck,pngcrush,pngquant,poppler,popt,potrace,pstoedit,py2cairo,pygobject3, pyqt,pyqt5,python,python3,qhull,qrupdate,qscintilla2,qt,qt5,rabbitmq-c,readline,redis,rename,rocksdb,ruby,sane-backends,sdl,shared-mime-info,sip,smartmontools,snappy, sox,sqlite,sqliteman,suite-sparse,suite-sparse421,svg2png,swig,szip,tag,tbb,tesseract,tmux,transfig,tree,ufraw,unixodbc,utf8proc,veclibfort,vips,webkit2png,webp,wget,wireshark, x264,xmlstarlet,xvid,xz,youtube-dl,bar