设为首页 收藏本站
查看: 597|回复: 0

[经验分享] ImageMagick的安装和使用案例

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-3-6 13:42:45 | 显示全部楼层 |阅读模式
ImageMagick是一个很好用的对图片进行格式转换、缩减大小、裁剪等等进行操作的工具,在windows和linux系统都可以安装,因为我们的环境是linux环境,所以我就以linux系统为安装环境进行测试。


系统环境:
# cat /etc/SuSE-release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2

一、编译安装环境

ImageMagick下载链接
https://www.imagemagick.org/download/ImageMagick.tar.gz

因为生产环境需要对png格式的图片进行修改,所以需要png库的支持,这里需要编译libpng-1.5.8.tar.gz,相应的如果你的图片格式是其他格式的,你就需要其他的库文件的支持。

/home/sxzhou # ll
total 13532
-rw-r--r-- 1 root root 12769934 Mar  2 14:02 ImageMagick.tar.gz
-rw-r--r-- 1 root root  1059513 Mar  2 14:12 libpng-1.5.8.tar.gz

编译安装libpng
/home/sxzhou # tar -zxf libpng-1.5.8.tar.gz
/home/sxzhou # cd libpng-1.5.8/
/home/sxzhou/libpng-1.5.8 # ./configure
/home/sxzhou/libpng-1.5.8 # make && make install

编译安装ImageMagick
/home/sxzhou # tar -zxf ImageMagick.tar.gz
/home/sxzhou # cd ImageMagick-7.0.5-0/
/home/sxzhou/ImageMagick-7.0.5-0 # ./configure --prefix=/usr/local/ImageMagick --enable-share --enable-static LDFLAGS="-L/usr/lib64" CPPFLAGS="-I/usr/include"

这一步之后在末尾可以看到对于png图片格式的支持

  PANGO             --with-pango=yes            no
  PERL              --with-perl=no              no
PNG               --with-png=yes              yes
  RAQM              --with-raqm=yes             no
  RSVG              --with-rsvg=no              no

/home/sxzhou/ImageMagick-7.0.5-0 # make && make install

/usr/local/ImageMagick # ldconfig /usr/local/lib

二、使用案例
2.1、对图片大小进行修改
-resize 对图片大小进行修改

/usr/local/ImageMagick/bin # ./convert -resize 500x300 /home/sxzhou/1.PNG /home/sxzhou/2.PNG
注意:
使用字母x代表乘号而不是*

参数说明:
500x300是指图片的宽x长(也可以只指明宽或者长,例如-resize 500,指明宽度,长度会按比例进行相应缩减,-resize x300,指明长度,宽度会按比例进行相应缩减)

/home/sxzhou/1.PNG 为源文件,也就是修改前的文件

/home/sxzhou/2.PNG 为目标文件,也就是修改后的文件

2.2、按比例缩减图片

-sample 按比例缩减图片
/usr/local/ImageMagick/bin # ./convert -sample 50% /home/sxzhou/1.PNG /home/sxzhou/3.PNG

以字节为单位显示文件大小
/home/sxzhou # du -sk *.PNG
120     1.PNG
112     2.PNG
56      3.PNG

把3.PNG拉出来查看图片大小(宽x高)可以发现也缩减了一半


2.3、对图片进行优化以及批量修改图片
在生产环境中经常会遇到对于图片大小要求尽可能小而清晰度高的情况,这时候就需要对于图片修改时加入优化的参数。

+profile “*” 去掉图片的exif信息

-quality 85  对图片的质量进行缩减(质量缩减直到75的范围内,肉眼识别的差别基本很小)

如下面所示:
在生产环境如果遇到批量修改图片,而且对于小于一定大小的图片不进行压缩,另外对于图片前后名字不变,如果同时满足以上的条件的话就需要组合命令。
/usr/local/ImageMagick/bin # ln -s /usr/local/ImageMagick/bin/convert /usr/bin/convert
修改前的图片大小
/home/sxzhou/ # du -sk *.png
44      BG00.png
428     BG01.png
80      BG10.png
44      BG11.png
1788    BJ00.png
592     BJ01.png
96      BJ10.png

批量修改图片
/home/sxzhou/ # find -name "*.png" -exec convert -resize '500x360>' {} {} \;

修改后的图片大小
/home/sxzhou/ # du -sk *.png
44      BG00.png
208     BG01.png
80      BG10.png
44      BG11.png
256     BJ00.png
260     BJ01.png
96      BJ10.png

可以看到只有红色部分标记的图片改变了大小


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-350384-1-1.html 上篇帖子: Linux中常见的压缩与解压缩方法 下篇帖子: rsync结合inotify实现数据自动同步
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表