在錄製視訊或者拍照的時候,我們經常要對視訊或者照片的尺寸進行裁剪.比如微信小視訊.在GPUImage中,給我們了一個非常友好的濾鏡.GPUImageCropFilter
可以直接剪下視訊的尺寸.
首先依舊是先定義裝置.濾鏡.一級GPUImageView.在拍照篇裡面可以找到.這裡就不做重複了.唯一不同的是GPUImageCropFilter
的定義
程式碼如下:
filter=[[GPUImageCropFilter alloc] initWithCropRegion:CGRectMake(0, 0, 1, 1080/1920.0)];
複製程式碼
這裡的corpRegion介紹如下:
// The crop region is the rectangle within the image to crop. It is normalized to a coordinate space from 0.0 to 1.0, with 0.0, 0.0 being the upper left corner of the image
複製程式碼
所以可以看到,長和寬都是0.0到1.0;所以我們要用裝置捕捉到的長和寬來擷取視訊.x軸和y軸都可以是初始點0. 顯示到螢幕上的就是將來擷取出來的.
視訊設定也要修改一下. 改為:
videoSettings = [[NSMutableDictionary alloc] init];
[videoSettings setObject:AVVideoCodecH264 forKey:AVVideoCodecKey];
[videoSettings setObject:[NSNumber numberWithInteger:1080] forKey:AVVideoWidthKey];
[videoSettings setObject:[NSNumber numberWithInteger:1080] forKey:AVVideoHeightKey]; //如果修改了高度值.這裡自然要修改.
複製程式碼
GPUImageMovieWriter
的size也要改.
movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(1080, 1080) fileType:AVFileTypeQuickTimeMovie outputSettings:videoSettings];
複製程式碼
然後錄影儲存什麼的,和攝像篇是一樣的. 至此,GPUImage差不多就完了.如果有需要.後面會繼續補充.
ps:裁剪對拍照也是一樣的.如果照片不像裁剪.那就更換一下濾鏡.其他濾鏡釋放方法幾乎都是一樣的