
Linux Debian12基于ImageMagick图像处理工具编写shell脚本用于常见图片png、jpg、jpeg、tiff格式批量转webp格式
在Linux系统中,使用ImageMagick可以图片格式转换,其中最常用的是通过命令行工具进行。
ImageMagick是一个非常强大的图像处理工具集,它包含了许多用于图像转换的命令。
一、安装ImageMagick(如果尚未安装):
1 2 |
sudo apt-get install imagemagick # 对于基于Debian的系统 |
验证是否安装成功:
尝试运行ImageMagick提供的一些常用命令,比如:
1 2 |
convert --version |
如果convert命令可用,它将返回版本信息。
二、可以编写shell脚本批量转换图片为webp格式
1.shell脚本文件名:
picToWebp_v1.4.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
#!/bin/bash #脚本功能:把常用的图片格式(png、jpg、jpeg、tiff)批量转换为webp格式 #函数功能:使用了*通配符来检查字符串中是否有空格。如果字符串包含空格,contains_space函数将返回真(true),否则返回假(false)。 function contains_space() { [[ $1 = *\ * ]] } #函数功能:把空格全部替换为'_'下划线" function space2underline(){ local file_name_old=$1 # 使用contains_space函数判断文件名中是否含有空格 if contains_space "$file_name_old"; then file_name_new="${file_name_old// /_}" mv "$file_name_old" "$file_name_new"; echo "$file_name_new" else echo "$file_name_old" fi } #函数功能:主函数 function main(){ echo "温馨提示:仅支持常见的图片格式(png、jpg、jpeg、tiff)才可以转换为webp格式,其他文件类型不支持!" # 创建新文件夹 new_folder="output-images" # 检查文件夹是否存在 if [ ! -d "$new_folder" ]; then # 文件夹不存在,创建文件夹 mkdir "$new_folder" fi # 存放待转换的图片文件夹 input_images_folder="input-images" # 检查文件夹是否存在 if [ ! -d "$input_images_folder" ]; then # 文件夹不存在,创建文件夹 mkdir "$input_images_folder" fi # 进入input-images目录 cd "input-images" #for file_name in `ls *.png *.jpg *.jpeg *.tiff`;do for file_name in *;do #echo "文件'${file_name}'" if [ "png" == "${file_name##*.}" ];then file_name=$(space2underline "$file_name") #echo "$file_name" (convert $file_name `echo ../$new_folder/${file_name//.png/.webp}`) && (echo "${file_name}已成功转为webp格式") || (echo "${file_name}转换失败") elif [ "jpg" == "${file_name##*.}" ];then file_name=$(space2underline "$file_name") #echo "$file_name" (convert $file_name `echo ../$new_folder/${file_name//.jpg/.webp}`) && (echo "${file_name}已成功转为webp格式") || (echo "${file_name}转换失败") elif [ "jpeg" == "${file_name##*.}" ];then file_name=$(space2underline "$file_name") #echo "$file_name" (convert $file_name `echo ../$new_folder/${file_name//.jpeg/.webp}`) && (echo "${file_name}已成功转为webp格式") || (echo "${file_name}转换失败") elif [ "tiff" == "${file_name##*.}" ];then file_name=$(space2underline "$file_name") #echo "$file_name" (convert $file_name `echo ../$new_folder/${file_name//.tiff/.webp}`) && (echo "${file_name}已成功转为webp格式") || (echo "${file_name}转换失败") #else #echo "仅支持常见的图片格式(png、jpg、jpeg、tiff)才可以转换为webp格式,其他文件'${file_name}'不支持!" fi done # 进入上一级目录 cd .. } # ---------------执行主函数------------------- main |
2.使用方法:
首先把图片放到input-images
目录下。
1).赋予shell脚本文件执行权限
1 2 |
chmod +x picToWebp_v1.4.sh |
2).运行shell脚本
1 2 |
./picToWebp_v1.4.sh |
测试效果如下:
三、该Shell脚本下载地址:
1 2 3 4 5 6 7 8 9 |
gitee链接: https://gitee.com/datutu2015/pic-to-webp 蓝奏云链接: https://wwxc.lanzouo.com/iT7rI2ip1yri 知识星球链接: https://t.zsxq.com/3ZX8c |