Ubuntu 14.04中安装GraphicsMagick


说明:如果需要使用torch及GraphicsMagick并读取jpg图像的话,最好先安装libjpeg的库,然后在安装GraphicsMagick,最后再安装torch。

因为刚才GraphicsMagick调用jpeg没有错误,但是torch里面的某个模块又提示找不到libjpeg.so的库了,之后只能先强制卸载image包:luarocks remove image --force,再重新luarocks install image。之后正常了。。。

Ubuntu真的能把人搞疯啊。。。之前在ubuntu16上安装GraphicsMagick貌似没出问题,在torch里面直接使用require ‘graphicsmagick’没有错误,但是在ubuntu14上面,装了之后,就提示:

/home/xxx/torch/install/share/lua/5.1/trepl/init.lua:384: /home/xxx/torch/install/share/lua/5.1/trepl/inti.lua:384: …/xx/torch/install/share/lua/5.1/graphicsmagick/Image.lua:322 : libGraphicsMagickWand.so: cannot open shared object file: No such file or directory.

如下图:

说明:这个是lua里面的命令。安装完torch及https://github.com/clementfarabet/graphicsmagick中的graphicsmagick后,运行的命令。安装torch的graphicsmagick直接使用luarocks就可以了。

后来在网上搜了。。。额,好久,终于解决了。不过不代表本方法也适用于其他遇到该问题的人。

安装GraphicsMagick步骤如下:

1. 去官网下载GraphicsMagick:http://www.graphicsmagick.org/

2. 解压后,cd到该文件夹中。

3. 运行如下命令:

./configure '--with-magick=wand/GraphicsMagickWand-config' '--enable-shared'

说明:第一个with是生成libGraphicsMagickWand.so(可能默认没有生成这个,在lib里面确实没有看到这个库),第二个with是生成共享库(默认可能是静态的吧,我开始没用第二个,得到的库后缀是.a)

4. 运行如下命令:

make
sudo make install

5. 到此之后,提示找不到libGraphicsMagickW.so.3,后来在网上继续搜索。网址:http://comments.gmane.org/gmane.comp.video.graphicsmagick.core/514中Nguyen Vu Hung给出了解决方法:

试着在终端中敲这些命令,如下:

sudo echo “/usr/local/lib”
sudo /sbin/ldconfig

截图如下:

好吧,其实我不懂这些命令什么意思,也没有去搜索。第二条命名更加不清楚是敲入的还是怎么弄的,反正提示权限不够。然后就敲了第三条命令。然后就没有然后了。

6. 在终端中敲 gm,安装成功了,如下:

 

说明:不记得开始ubuntu16怎么成功的了。只怪当时没有记一下。也可以自动安装,命令网上搜一下,不过我好像没有自动安装。

更新:

刚才去ubuntu16下面看了一下,/usr/local/lib下面确实也没有libGraphicsMagickWand.so,如下图:

但是在th中直接使用require ‘graphicsmagick’就没有错误,如下图:

理解不能。

更新160714:使用graphicsmagick的Image来load一张jpg图像,开始提示:

No decode delegate for this image format

此时  说是由于没有装jpg的解码包。因而下载了jpeg9吧,装好后,重新安装graphicsmagick,又提示:

Wrong JPEG library version: library is 80, caller expects 90

又去ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/delegates/(这个网址不知道是内容多还是网速渣还是怎么回事,在win系统下,打开里面啥都没有。。。在ubuntu下打开能看到里面的文件)下载了jpegsrc.v6b.tar.gz,装上去并重新安装graphicsmagick后,能正常load进来jpg图像了。

本文永久更新链接地址

相关内容