Loading... # FFMPEG脚本自动调整图片尺寸和质量 当你需要管理大量图片,特别是为了网页使用或存储优化时,批量处理图片可以极大地节省时间。这个脚本利用 `ffmpeg`,一个强大的多媒体框架,自动调整目录中图片的尺寸和质量。本教程将指导你如何使用这个脚本。 ## 一、前提条件 * 确保你的系统已安装 `ffmpeg`。它支持Windows、macOS和Linux。访问 [ffmpeg官网](https://ffmpeg.org/download.html) 下载并安装。 * 基本的批处理脚本和命令行操作知识。 ## 二、Windows bat ```powershell @echo off setlocal enabledelayedexpansion :: 设置默认值 set DEFAULT_MAX_WIDTH=1280 set DEFAULT_MAX_HEIGHT=720 set DEFAULT_QUALITY_SCALE=2 :: 检查参数,若未提供,则使用默认值 if "%~1"=="" ( set MAX_WIDTH=%DEFAULT_MAX_WIDTH% ) else ( set MAX_WIDTH=%1 ) if "%~2"=="" ( set MAX_HEIGHT=%DEFAULT_MAX_HEIGHT% ) else ( set MAX_HEIGHT=%2 ) if "%~3"=="" ( set QUALITY_SCALE=%DEFAULT_QUALITY_SCALE% ) else ( set QUALITY_SCALE=%3 ) :: 创建temp文件夹 if not exist "temp" mkdir temp :: 对当前目录下的所有图片文件进行处理 for %%f in (*.jpg *.jpeg *.png) do ( echo Processing and possibly overwriting: %%f :: 适用于大多数图片格式的质量和尺寸调整命令,自动覆盖输出目录中的同名文件 ffmpeg -i "%%f" -vf "scale='min(%MAX_WIDTH%\,iw):-1',scale='trunc(oh*a/2)*2:min(%MAX_HEIGHT%\,ih)'" -qscale:v %QUALITY_SCALE% "temp/%%f" -y ) echo Done. ``` ### 使用说明 1. 将脚本保存为 `.bat` 文件,例如 `resizeImages.bat`。 2. 在包含图片的目录中按住`Shift`+`鼠标右键`打开终端`PowerShell / cmd`。 3. 执行脚本,可选地指定最大宽度、最大高度和质量比例值。例如: ```powershell resizeImages.bat 1920 1080 2 ``` > 这个命令将图片尺寸调整为最大宽度1920像素,最大高度1080像素,质量比例为2。 > > 如果未指定参数,直接双击运行该bat,则会使用默认值最大宽度1280,最大高度720,质量比例为2进行 ## 三、Linux / Mac ```shell #!/bin/bash # 设置默认值 DEFAULT_MAX_WIDTH=1280 DEFAULT_MAX_HEIGHT=720 DEFAULT_QUALITY_SCALE=2 # 检查参数,若未提供,则使用默认值 MAX_WIDTH=${1:-$DEFAULT_MAX_WIDTH} MAX_HEIGHT=${2:-$DEFAULT_MAX_HEIGHT} QUALITY_SCALE=${3:-$DEFAULT_QUALITY_SCALE} # 创建temp文件夹 if [ ! -d "temp" ]; then mkdir temp fi # 处理当前目录下的所有图片 for f in *.jpg *.jpeg *.png; do echo "Processing and possibly overwriting: $f" ffmpeg -i "$f" -vf "scale='min($MAX_WIDTH,iw):-1',scale='trunc(oh*a/2)*2:min($MAX_HEIGHT,ih)'" -q:v $QUALITY_SCALE "temp/$f" done echo "Done." ``` ### 使用说明 1. 将上述脚本保存为文件,例如 `resizeImages.sh`。 2. 打开终端,并使用 `cd` 命令导航到包含图片和脚本的目录。 3. 确保脚本具有可执行权限。可以通过在终端执行以下命令来赋予权限: ```shell chmod +x resizeImages.sh ``` 4. 使用脚本时,可以指定最大宽度、最大高度和质量比例作为参数。如果不指定,脚本将使用默认值。运行脚本的命令如下: ```shell ./resizeImages.sh 1920 1080 2 ``` ## 执行后: 这会将当前目录下所有的 `.jpg`、`.jpeg` 和 `.png` 文件调整至最大1920像素宽、1080像素高,质量比例为2,并将处理后的图片保存在 `temp` 文件夹中。 > PS:实际上是因为本子尺寸太大,要放在私有网盘中发现加载问题太慢(云服务器带宽鸡肋)所以才.... 最后修改:2024 年 04 月 02 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 喜欢就请我喝一杯奶茶吧~