下面測試命令中 image_source 是要處理的輸入文件,out_source 是處理完成之後的輸出文件
1. 圖片壓縮:ffmpeg 可以很完美的壓縮圖片生成新圖片,並可以設置壓縮等級
ffmpeg -i image_source -q compress_level out_source
#compress_level:壓縮等級為正整數,數值越大壓縮等級越高
2. 約束比例壓縮
ffmpeg 可以將圖片壓縮成指定的尺寸
ffmpeg -i image_source -vf scale=width:height out_source
#width為壓縮後的圖片寬度
#height為壓縮後的圖片高度
#當width或height其中有一個數值為-1時將保持原來圖片尺寸比例壓縮
3. 圖片裁剪
ffmpeg 可以指定圖片裁剪位置和裁剪的圖片尺寸
ffmpeg -i image_source -vf crop=width:height:from_x:from_y out_source
#width是要裁剪出的圖片的寬度
#height是要裁剪出的圖片的高度
#from_x是裁剪的起始X軸的位置
#from_y是裁剪的起始Y軸的位置
#如果不指定from_x和from_y表示從原始圖片中心位置開始裁剪
4. 添加水印圖片
ffmpeg 可以為圖片添加水印,可以設置水印圖片的大小、位置和透明度
ffmpeg -i image_source -vf movie=logo_source,scale=logo_width:logo_height,lut=a=val*opacity_num[watermask];[in][watermask] overlay=from_x:from_y[out] -y out_source
#logo_source為水印圖片地址
#logo_width為水印圖片的寬度
#logo_height為水印圖片的高度
#opacity_num為水印圖片的透明度
#from_x為水印的起始X軸的位置
#from_y為水印的起始Y軸的位置
5. 添加文字水印
ffmpeg 可以為圖片添加文字水印,可以設置字體、顏色、尺寸、文字內容、文字位置
ffmpeg -i image_source -vf drawtext=fontfile=font_ttf_path:fontcolor=font_color:fontsize=font_size:text=message_info:x=from_x:y=from_y out_source
#font_ttf_path為字體路徑,此項必須設置否則會出現字體無法找到的錯誤;
#字體路徑要設置絕對路徑並且要注意路徑正反斜線轉義(例如C\\:/Windows/Fonts/simhei.ttf)
#font_color為字體的顏色
#font_size為字體的大小
#message_info為水印文字內容
#from_x為水印的起始X軸的位置
#from_y為水印的起始Y軸的位置
#如果水印內容是中文需要設置中文字體否則會文字顯示亂碼
6. 圖片旋轉指定的角度
ffmpeg 可以將圖片按照指定的角度旋轉生成新圖片
ffmpeg -i image_source -vf rotate=route_num*PI/180 -y out_source
#route_num是要旋轉的角度
#當route_num大於0的時候順時針旋轉,當route_num小於0的時候逆時針旋轉
7. 圖片旋轉特殊簡便命令
上面的命令理論上可以完成所有的圖片旋轉操作,但 ffmpeg 仍然存在特殊簡便旋轉命
ffmpeg -i image_source -vf transpose=route_number -y out_source
#route_number=0順時針旋轉90度再左右鏡像
#route_number=1順時針旋轉90度
#route_number=2逆時針旋轉90度
#route_number=3逆時針旋轉90度再左右鏡像
8. 圖片左右鏡像
ffmpeg -i image_source -vf hflip out_source
9. 將圖片上下鏡像
ffmpeg -i image_source -vf vflip out_source