说明:如果需要使用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步骤如下:
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,后来在网上继续搜索。网址:中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图像了。