简介
imagemagick是一款基于C语言的图像处理开源工具,被广泛的应用在图像处理工具中,可以实现图像的裁剪、尺寸的放缩,在图像上绘制文本图形、压缩图片质量以及格式的转换等等。通过在终端中输入简短的命令,即可实现图像的处理工作。同时,这款工具占用资源较少,运行速度快,适合批量处理大量的图片。
如何安装
mac用户可以直接通过brew
安装
brew install imagemagick
相关功能
修改图片尺寸:将输入照片的宽边改为指定指定像素,图像比例不发生改变
magick input.jpg -resize '2048' output.jpg
修改图片尺寸并进行画质压缩(将quality设置为80%可以大幅减少文件体积,同时不会改变整体画质)
convert 1.jpg -resize '2048' -quality 80% output.jpg
这个功能比较常用,写了一个脚本方便进行批处理,在终端在该脚本后输入要压缩图片所在的文件夹内,即可处理所有的.jpg文件。
#!/bin/zsh
# 指定要处理的文件夹路径
target_folder="$1"
# 创建名为resized的子文件夹
mkdir -p "$target_folder/resized"
find "$target_folder" -type f -name "*.jpg" | while read -r file; do
# 获取原始文件的目录
dir=$(dirname "$file")
# 创建名为resized的子文件夹
mkdir -p "$dir/resized"
# 获取原始文件的文件名(包含扩展名)
filename=$(basename "$file")
# 设置新文件的路径和名称
new_file="$dir/resized/$filename"
# 进行压缩并保存到新文件夹
convert "$file" -define jpeg:extent=5MB -quality 80% "$new_file"
done
格式转换
magick input.jpg output.png
如果需要转换大量图片,可以使用
magick mogrify -format JPEG *.webp #把当前文件夹下的webp文件转换成JPEG格式的照片
将eps文件变为透明背景并输出为png
convert -density 300 exploration_noise.eps -transparent white exploration_noise.png
将png文件变为透明背景并输出为png
convert -density 300 input.png -transparent white output.png
问题
在处理部分相机RAW文件不能正确映射颜色,建议在处理前中先用相机厂商提供工具对原始RAW文件进行处理,或用Dcraw命令行工具进行处理。