域名如何跟网站绑定,经典软文案例和扶贫农产品软文,wordpress常用页面,做网站第二年要续费吗一、ImageMagick简介
ImageMagick是一套功能强大、稳定而且免费的工具集和开发包。可以用来读、写和图像格式转换#xff0c;可以处理超过100种图像格式#xff0c;包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式。对图片的操作#xff0c;即可以通过命令行进行可以处理超过100种图像格式包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式。对图片的操作即可以通过命令行进行也可以用C/C、Perl、Java、PHP、Python或Ruby编程来完成。
二、ImageMagick安装
1.打开终端并执行以下命令安装ImageMagick的依赖库。
sudo apt-get install build-essential sudo apt-get install libjpeg-dev libpng-dev libtiff-dev libgif-dev libwebp-dev sudo apt-get install webp2.下载ImageMagick的源码包可以在官网https://imagemagick.org上找到最新的稳定版本也可以在github上下载。
官网下载 https://www.imagemagick.org/download/ImageMagick.tar.gz
github下载 https://github.com/ImageMagick/ImageMagick 假设下载的文件名为:ImageMagick-X.X.X.tar.gz,执行以下命令解压缩和安装
tar xf ImageMagick-X.X.X.tar.gz
cd ImageMagick-X.X.X
./configure
sudo make install3.安装完毕后可以执行以下命令验证是否安装成功。
magick --version
如果出现下面错误
magick: error while loading shared libraries: libMagickCore-7.Q16HDRI.so.10: cannot open shared object file: No such file or directory 需要执行以下命令
echo /usr/local/lib sudo /etc/ld.so.conf
sudo ldconfig再次验证是否安装成功 magick --version
可以看到输出了ImageMagick版本信息安装成功了。 三、ImageMagick使用
1.使用ImageMagick对单个图片png格式转为webp格式
magick test_01.png test_01_new.webp
可以看到同样画质的前提下webp格式和png、jpg相比文件格式小的多除此之外webp还支持动图。 2.通过shell编程使用ImageMagick把图片png格式批量转为webp格式
for file_name in ls *.png;do magick $file_name echo ${file_name//.png/_new.webp};done3.通过shell编程使用ImageMagick把图片png、jpg、jpeg、tiff格式批量转为webp格式
Shell脚本picToWebp.sh
#!/bin/bash
#功能把常用的图片格式png、jpg、jpeg、tiff批量转换为webp格式for file_name in ls *.png *.jpg *.jpeg *.tiff;doif [ png ${file_name##*.} ];thenmagick $file_name echo ${file_name//.png/.webp}fiif [ jpg ${file_name##*.} ];thenmagick $file_name echo ${file_name//.jpg/.webp}fiif [ jpeg ${file_name##*.} ];thenmagick $file_name echo ${file_name//.jpeg/.webp}fiif [ tiff ${file_name##*.} ];thenmagick $file_name echo ${file_name//.tiff/.webp}fi
done对上面代码进行优化后如下
Shell脚本picToWebp.sh
#!/bin/bash
#功能把常用的图片格式png、jpg、jpeg、tiff批量转换为webp格式#for file_name in ls *.png *.jpg *.jpeg *.tiff;do
for file_name in ls *.*;doif [ png ${file_name##*.} ];then(magick $file_name echo ${file_name//.png/.webp}) (echo ${file_name}已成功转为webp格式) || (echo ${file_name}转换失败)elif [ jpg ${file_name##*.} ];then (magick $file_name echo ${file_name//.jpg/.webp}) (echo ${file_name}已成功转为webp格式) || (echo ${file_name}转换失败)elif [ jpeg ${file_name##*.} ];then(magick $file_name echo ${file_name//.jpeg/.webp}) (echo ${file_name}已成功转为webp格式) || (echo ${file_name}转换失败)elif [ tiff ${file_name##*.} ];then(magick $file_name echo ${file_name//.tiff/.webp}) (echo ${file_name}已成功转为webp格式) || (echo ${file_name}转换失败)elseecho 仅支持常见的图片格式png、jpg、jpeg、tiff才可以转换为webp格式其他文件${file_name}不支持fi
done通过下面命令修改picToWebp.sh可执行
chmod 755 picToWebp.sh 通过下面命令执行picToWebp.sh
./picToWebp.sh