Imagemagick jpeg decode delegate missing with OS X

2019-03-15 04:49发布

I recently converted from macports to homebrew and my previous macports Imagemagick install was working fine. I followed the homebrew instructions to chown /usr/local (somewhat apprehensively) and remove /usr/local/include and /usr/local/lib. When trying to work with any jpeg images, imagemagick chokes with:

no decode delegate for this image format

Here is a list of some relevant command output. As you can see, no jpeg/jpg delegate can be found.

convert -list configure => DELEGATES bzlib freetype png x11 xml zlib

identify -list configure => DELEGATES bzlib freetype png x11 xml zlib

However, jpeg lib was installed as part of the Imagemagick dependencies, so I'm not sure what's going on here.

brew list => imagemagick jasper jpeg libtiff little-cms nginx pcre

brew doctor => Your OS X is ripe for brewing. Any troubles you may be experiencing are likely purely psychosomatic.

identify --version => Version: ImageMagick 6.6.7-9 2011-04-06 Q16

Any ideas?

5条回答
地球回转人心会变
2楼-- · 2019-03-15 05:00

9monkeys solution here plus restarting Terminal worked for me.

查看更多
Luminary・发光体
3楼-- · 2019-03-15 05:03

Andrei, your solution got me in the right direction.

but it was a

brew install --force jpeg
brew install --force imagemagick

that got it working for me.

查看更多
淡お忘
4楼-- · 2019-03-15 05:17

I had this problem and it turned out to be permissions.

sudo chown myuser:wheel /usr/local

then:

brew remove jpeg
brew remove imagemagick
brew install jpeg
brew install imagemagick

sorted it. Word of warning though: I had MySQL sittting in /usr/local/ too, and I inadvertently messed up permissions for that, so if you've got anything else important in there, be careful :-) Fixed that with:

sudo chown -R mysql:wheel /usr/local/mysql/data

Hope this helps someone!

查看更多
Viruses.
5楼-- · 2019-03-15 05:19

I just ran into this issue myself. While investigating I noticed symlinks to the jpeg jib were missing from /usr/local/lib. Can take of this with the following; just be sure to refer to the jpeg lib version in use, at the time of this post I am using 8c:

 ln -s /usr/local/Cellar/jpeg/8c/lib/libjpeg.8.dylib /usr/local/lib/libjpeg.8.dylib

 ln -s /usr/local/Cellar/jpeg/8c/lib/libjpeg.a /usr/local/lib/libjpeg.a

Then force homebrew to reinstall imagemagick:

 brew install --force imagemagick

Viola! Imagemagick will now show that a jpeg delegate is present.

查看更多
可以哭但决不认输i
6楼-- · 2019-03-15 05:20

Thanks for the direction pointed. My jpeg is also already in the delegate list, re-installing imagemagick doesn't work for me, but relinking jpeg does:

brew unlink jpeg
brew link jpeg
查看更多
登录 后发表回答