在录制视频或者拍照的时候,我们经常要对视频或者照片的尺寸进行裁剪.比如微信小视频.在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:裁剪对拍照也是一样的.如果照片不像裁剪.那就更换一下滤镜.其他滤镜释放方法几乎都是一样的