写在开始

最近有些批量截取图片的一个固定部分的需求,所以找了一下解决方案,然后想到了ffmpeg

操作方法

单个命令的样子大概如下:

ffmpeg -i .\input.jpg -filter:v "crop=width:height:x:y" out.jpg

其中width是结果图的宽度,height是结果图的高度,x是结果图在原图的起始x轴坐标,y是结果图在原图的起始y轴坐标。

这个参数本是在视频截取中使用的,不过输入是图片的时候一样可以用。

如果要批量执行的话使用下面这个命令

Get-ChildItem -Filter *.jpg -Recurse | Foreach-Object { ffmpeg -i $_.FullName -filter:v "crop=width:height:x:y" "$_.png" }

不过这样子就会在原来的名字后多添加一个.png,如果有需要可以自己再加一点参数把前面的.jpg去掉,暂时忘记怎么删除了,也可以这么做:

mkdir out
Get-ChildItem -Filter *.jpg -Recurse | Foreach-Object { ffmpeg -i $_.FullName -filter:v "crop=width:height:x:y" ./out/"$_" }

这样子的话就把文件输出到out文件夹了,输出文件格式和输入文件格式相同。

写在最后

整体来说这件事情还是很简单的,就是命令不常用容易忘记,写一下记录一下吧。

Last modification:November 11th, 2020 at 10:34 am