Linux Centos7 ImageMagick压缩某目录下的图片

1.系统上线一段时间后,服务器图片目录上传了13G多的图片,而且图片很大一张张的,因此需要把图片进行压缩

2.百度各种压缩方案,发现 Linux 上 ImageMagick 软件很好,C语言开发的,可以压缩、裁剪、加水印,功能太多了,自己去官网看吧,且已在GitHub上开源

3.开源地址:https://github.com/ImageMagick/ImageMagick

4.先看看压缩效果,这个目录有7.3G大小的图片,压缩后为 1.6G,这样可以大大提升网站的访问速度Linux Centos7 ImageMagick压缩某目录下的图片_第1张图片

5.安装ImageMagick(网上太多安装教程,很坑)

1.先安装依赖库
  yum install -y libjpeg* libpng* libtiff* libungif* freetype zlib
2.下载ImageMagick
  wget  http://www.imagemagick.org/download/ImageMagick-7.0.10-10.tar.gz
3.解压
  tar -xvzf ImageMagick-7.0.10-10.tar.gz
4.进入解压目录,检查配置
  ./configure
5.编译与安装
  make
  make install
6.上传一张图片测试转换为png格式
  convert 1.jpg 1.png
7.检查支持的格式
  identify -list format

6.在某个目录执行批量压缩命令:

  • du -sh :查看目录大小
  • 压缩:find ./ -regex ‘.*(jpg|JPG|png|jpeg)’ -size +300k -exec convert -resize 50%x50% -quality 70 {} {} \;
  • du -sh :再次查看大小
  • 压缩命令解释:正则表达式查找 当前目录所有大于 300K的 jpg,png,jpeg图片,使用 convert 把图片的宽高转换 50%,且图片质量压缩为 70%

7.ImageMagick有Java SDK

<dependency>
    <groupId>org.im4java</groupId>
    <artifactId>im4java</artifactId>
    <version>1.4.0</version>
</dependency>

ImageMagick CSDN下载地址:https://download.csdn.net/download/zhuyu19911016520/12408864
它有很多功能,请看GitHub上的说明或官网的示例:https://imagemagick.org/script/convert.php
Linux Centos7 ImageMagick压缩某目录下的图片_第2张图片
Linux Centos7 ImageMagick压缩某目录下的图片_第3张图片

你可能感兴趣的:(其他)