graphicsmagic编译

1. 下载源码

地址:https://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/

找到对应版本下载

解压:tar -zxvf GraphicsMagick-1.3.20.tar.gz

 

2. 编译步骤

a. bash ../configure(configure文件的路径) -prefix=/home/hzliukai/space/C/GraphicsMagick-1.3.20/build(安装的路径)

 

b. make

如果提示

 

如果gcc等工具已经安装,则可能是Makefile和libtool问题。有两种解决方法:

1. 检查/bin/sh的软链接,linux默认指向dash,把/bin/sh指向bash

2. 将Makefile和libtool中的SHELL=/bin/sh修改为/bin/bash

 

之后,直接编译即可。

可能会遇到缺少X11/extensions/shape.h文件的情况,需要安装x11库

 

c. make install

执行make install可以将gm生成到prefix所指向的位置。

 

3. 支持webp

gm支持webp需要将webp的lib库编译进去具体步骤为:

 

先下载libwebp-0.3.0.tar.gz tar -zxvf libwebp-0.3.0.tar.gz cd libwebp-0.3.0 ./configure && make && make install cp /usr/local/lib/libwebp.so.4.0.2 /usr/lib64/ ln -s /usr/lib64/libwebp.so.4.0.2 /usr/lib64/libwebp.so.4 ln -s /usr/lib64/libwebp.so.4.0.2 /usr/lib64/libwebp.so

 

编译步骤为在前面的基础上加上:--with-webp

通过gm -version判断是否支持webp

 

4. 性能优化

按照上述步骤编译出来的版本性能较差,如果要提升性能,需要关闭openmp。编译的时候添加:

--disable-openmp

因此总的编译命令为:

bash ../configure(configure文件的路径) -prefix=/home/hzliukai/space/C/GraphicsMagick-1.3.20/build(安装的路径) --with-webp --disable-openmp

 

原因是:开启openmp后,gm多线程只会在一个核上运行,无法充分发挥多核CPU的性能。这是由于jpeg库造成的,libjpeg is not thread safe,而我们处理的大部分图片都是jpeg的,在处理jpeg图片时,gm会转成单线程运行,所以打开openmp后会造成性能下降。

 

不推荐的解决方案:修改coders/jpeg.c文件,在RegisterJPEGImage() 函数中把两个entry->thread_support的值改为True。如下图:



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值