ffmpeg-Image-resolution
FFmpeg 修改图片分辨率
补充说明
基于原有脚本风格,分 CMD、PowerShell、Linux 三类,提供等比例缩放、固定尺寸拉伸、等比例缩放 + 居中补边、按宽/高固定缩放常用场景,支持保留原格式 & 转 WebP,兼容 dng/png/jpg/jpeg 全格式。所有脚本自动创建 Completed 文件夹,处理完成的图片自动存入该目录,不覆盖、不修改原图。
通用参数说明
force_original_aspect_ratio=decrease:等比例缩小,不放大原图force_original_aspect_ratio=increase:等比例放大/缩小pad=宽:高:左右偏移:上下偏移:留白补边居中-y:自动覆盖输出文件夹内同名文件,不影响原图
一、CMD 版本(批量处理 + 自动分类存档)
所有命令自动检测并创建当前目录 Completed 文件夹,处理后的文件统一存入该目录,原图保留不动。
1. 等比例缩放(限定最大宽高,不拉伸、不放大原图)
输出原图片格式,成品存入 Completed 文件夹
md Completed 2>nul && for %i in (*.dng *.DNG *.png *.PNG *.jpg *.JPG *.jpeg *.JPEG) do ffmpeg -i "%i" -y -vf "scale=1920:1080:force_original_aspect_ratio=decrease" "Completed\%~ni%~xi"
2. 强制拉伸为固定尺寸 1920x1080(无视比例)
输出原图片格式,成品存入 Completed 文件夹
md Completed 2>nul && for %i in (*.dng *.DNG *.png *.PNG *.jpg *.JPG *.jpeg *.JPEG) do ffmpeg -i "%i" -y -vf "scale=1920:1080" "Completed\%~ni%~xi"
3. 等比例缩放 + 居中白底补边 1920x1080
输出原图片格式,成品存入 Completed 文件夹
md Completed 2>nul && for %i in (*.dng *.DNG *.png *.PNG *.jpg *.JPG *.jpeg *.JPEG) do ffmpeg -i "%i" -y -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" "Completed\%~ni%~xi"
4. 仅固定宽度,高度自动等比例
示例:固定宽度 1200px,高度自适应,成品存入 Completed 文件夹
md Completed 2>nul && for %i in (*.dng *.DNG *.png *.PNG *.jpg *.JPG *.jpeg *.JPEG) do ffmpeg -i "%i" -y -vf "scale=1200:-1" "Completed\%~ni%~xi"
5. 仅固定高度,宽度自动等比例
示例:固定高度 800px,宽度自适应,成品存入 Completed 文件夹
md Completed 2>nul && for %i in (*.dng *.DNG *.png *.PNG *.jpg *.JPG *.jpeg *.JPEG) do ffmpeg -i "%i" -y -vf "scale=-1:800" "Completed\%~ni%~xi"
6. 改分辨率 + 同步转 WebP(极限压缩)
等比例缩放到 1920x1080 并转 WebP 极致压缩,成品存入 Completed 文件夹
md Completed 2>nul && for %i in (*.dng *.DNG *.png *.PNG *.jpg *.JPG *.jpeg *.JPEG) do ffmpeg -i "%i" -y -vf "scale=1920:1080:force_original_aspect_ratio=decrease" -q:v 30 -compression_level 6 "Completed\%~ni.webp"
二、PowerShell 版本(批量处理 + 自动分类存档)
所有命令自动检测并创建当前目录 Completed 文件夹,处理后的文件统一存入该目录,原图保留不动。
1. 等比例缩放(限定最大宽高,不放大原图)
输出原图片格式,成品存入 Completed 文件夹
# 自动创建存档文件夹
if (!(Test-Path "Completed")) { New-Item -ItemType Directory -Path "Completed" | Out-Null }
# 批量处理图片
Get-ChildItem *.DNG, *.dng, *.png, *.PNG, *.jpg, *.JPG, *.jpeg, *.JPEG | % { ffmpeg -i $_.FullName -y -vf "scale=1920:1080:force_original_aspect_ratio=decrease" "Completed\$($_.Name)" }
2. 强制拉伸为固定尺寸 1920x1080
输出原图片格式,成品存入 Completed 文件夹
if (!(Test-Path "Completed")) { New-Item -ItemType Directory -Path "Completed" | Out-Null }
Get-ChildItem *.DNG, *.dng, *.png, *.PNG, *.jpg, *.JPG, *.jpeg, *.JPEG | % { ffmpeg -i $_.FullName -y -vf "scale=1920:1080" "Completed\$($_.Name)" }
3. 等比例缩放 + 居中补边 1920x1080
输出原图片格式,成品存入 Completed 文件夹
if (!(Test-Path "Completed")) { New-Item -ItemType Directory -Path "Completed" | Out-Null }
Get-ChildItem *.DNG, *.dng, *.png, *.PNG, *.jpg, *.JPG, *.jpeg, *.JPEG | % { ffmpeg -i $_.FullName -y -vf "scale=1920:1080:force_original_aspect_ratio=1,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" "Completed\$($_.Name)" }
4. 固定宽度、高度自适应
if (!(Test-Path "Completed")) { New-Item -ItemType Directory -Path "Completed" | Out-Null }
Get-ChildItem *.DNG, *.dng, *.png, *.PNG, *.jpg, *.JPG, *.jpeg, *.JPEG | % { ffmpeg -i $_.FullName -y -vf "scale=1200:-1" "Completed\$($_.Name)" }
5. 固定高度、宽度自适应
if (!(Test-Path "Completed")) { New-Item -ItemType Directory -Path "Completed" | Out-Null }
Get-ChildItem *.DNG, *.dng, *.png, *.PNG, *.jpg, *.JPG, *.jpeg, *.JPEG | % { ffmpeg -i $_.FullName -y -vf "scale=-1:800" "Completed\$($_.Name)" }
6. 改分辨率 + 转 WebP 极限压缩
if (!(Test-Path "Completed")) { New-Item -ItemType Directory -Path "Completed" | Out-Null }
Get-ChildItem *.DNG, *.dng, *.png, *.PNG, *.jpg, *.JPG, *.jpeg, *.JPEG | % { ffmpeg -i $_.FullName -y -vf "scale=1920:1080:force_original_aspect_ratio=decrease" -q:v 30 -compression_level 6 -preset picture "Completed\$($_.BaseName).webp" }
三、Linux 版本(批量处理 + 自动分类存档)
所有命令自动检测并创建当前目录 Completed 文件夹,处理后的文件统一存入该目录,原图保留不动,兼容 Linux / MacOS 终端执行,支持 dng/png/jpg/jpeg 全格式。
1. 等比例缩放(限定最大宽高,不拉伸、不放大原图)
输出原图片格式,成品存入 Completed 文件夹
mkdir -p Completed && for file in *.{dng,DNG,png,PNG,jpg,JPG,jpeg,JPEG}; do ffmpeg -i "$file" -y -vf "scale=1920:1080:force_original_aspect_ratio=decrease" "Completed/$file"; done
2. 强制拉伸为固定尺寸 1920x1080(无视比例)
输出原图片格式,成品存入 Completed 文件夹
mkdir -p Completed && for file in *.{dng,DNG,png,PNG,jpg,JPG,jpeg,JPEG}; do ffmpeg -i "$file" -y -vf "scale=1920:1080" "Completed/$file"; done
3. 等比例缩放 + 居中白底补边 1920x1080
输出原图片格式,成品存入 Completed 文件夹
mkdir -p Completed && for file in *.{dng,DNG,png,PNG,jpg,JPG,jpeg,JPEG}; do ffmpeg -i "$file" -y -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" "Completed/$file"; done
4. 仅固定宽度,高度自动等比例
示例:固定宽度 1200px,高度自适应,成品存入 Completed 文件夹
mkdir -p Completed && for file in *.{dng,DNG,png,PNG,jpg,JPG,jpeg,JPEG}; do ffmpeg -i "$file" -y -vf "scale=1200:-1" "Completed/$file"; done
5. 仅固定高度,宽度自动等比例
示例:固定高度 800px,宽度自适应,成品存入 Completed 文件夹
mkdir -p Completed && for file in *.{dng,DNG,png,PNG,jpg,JPG,jpeg,JPEG}; do ffmpeg -i "$file" -y -vf "scale=-1:800" "Completed/$file"; done
6. 改分辨率 + 同步转 WebP(极限压缩)
等比例缩放到 1920x1080 并转 WebP 极致压缩,成品存入 Completed 文件夹
mkdir -p Completed && for file in *.{dng,DNG,png,PNG,jpg,JPG,jpeg,JPEG}; do ffmpeg -i "$file" -y -vf "scale=1920:1080:force_original_aspect_ratio=decrease" -q:v 30 -compression_level 6 "Completed/${file%.*}.webp"; done
7. 补边底色改为黑色(扩展)
等比例缩放+黑色居中补边,成品存入 Completed 文件夹
mkdir -p Completed && for file in *.{dng,DNG,png,PNG,jpg,JPG,jpeg,JPEG}; do ffmpeg -i "$file" -y -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2:black" "Completed/$file"; done
8. 按百分比缩放(整体缩小 50%)
图片整体缩放 50%,成品存入 Completed 文件夹
mkdir -p Completed && for file in *.{dng,DNG,png,PNG,jpg,JPG,jpeg,JPEG}; do ffmpeg -i "$file" -y -vf "scale=iw*0.5:ih*0.5" "Completed/$file"; done
四、扩展用法
1. 修改补边底色(默认白色,改为黑色)
在 pad 参数后加颜色 :black,成品自动存入 Completed 文件夹(CMD):
md Completed 2>nul && for %i in (*.dng *.DNG *.png *.PNG *.jpg *.JPG *.jpeg *.JPEG) do ffmpeg -i "%i" -y -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2:black" "Completed\%~ni%~xi"
2. 按百分比缩放(整体缩小 50%)
CMD 示例,成品存入 Completed 文件夹:
md Completed 2>nul && for %i in (*.dng *.DNG *.png *.PNG *.jpg *.JPG *.jpeg *.JPEG) do ffmpeg -i "%i" -y -vf "scale=iw*0.5:ih*0.5" "Completed\%~ni%~xi"
3. 禁止覆盖输出文件夹内文件
删除命令里的 -y 参数,若 Completed 文件夹内存在同名文件,会弹出确认提示,防止成品文件被误覆盖。原图始终不会被修改。
五、参数速查(scale 滤镜)
| 写法 | 作用 |
|---|---|
scale=W:H |
固定宽高,强制拉伸 |
scale=W:-1 |
固定宽度,高度自适应 |
scale=-1:H |
固定高度,宽度自适应 |
scale=iw*0.5:ih*0.5 |
宽高同时缩为原尺寸 50% |
force_original_aspect_ratio=decrease |
只缩小、不放大原图 |
force_original_aspect_ratio=increase |
可放大/缩小,保持比例 |
六、功能说明
- 自动创建文件夹:CMD 通过
md Completed 2>nul、PowerShell 通过目录检测命令,自动生成存档文件夹,无需手动新建,重复执行命令不会报错 - 原图绝对保护:所有处理操作均针对源文件读取,输出文件全部存入子文件夹,彻底杜绝原图覆盖、损坏、丢失问题
- 同名文件兼容:保留
-y参数,默认覆盖文件夹内成品文件,可手动删除该参数开启覆盖确认提示 - 全功能兼容:原有缩放、补边、WebP 压缩、百分比缩放等所有功能完全保留,仅修改文件输出路径