从UIImagePicker裁剪UIImage的特定区域

时间:2014-02-18 03:15:04

标签: ios uiimage uiimagepickercontroller crop

我的标题正在爆发这个问题。

我想实现类似于Instagram的相机视图的东西。 我正在使用叠加视图来自定义相机的外观。

第一期 - 我无法使实时视图成为一个正方形。因此,我创建了视图以覆盖实时视图的各个部分并形成一个正方形。

这个解决方案导致了我的第二个问题。如何裁剪我在叠加视图上制作的正方形中出现的图像。

我最接近的解决方案来自这篇文章:UIImage: Resize, then Crop

有没有办法制作方形实时预览和使用该图像。或者我可以从我想要的scryeen的一部分做一个正方形而不会失真或失去质量。

此致

1 个答案:

答案 0 :(得分:0)

GPUImage是处理实时相机Feed的绝佳框架。它可以轻松实现许多视觉效果,包括裁剪。

例如,要从矩形相机输入进行方形视频输入:

GPUImageStillCamera *camera = [[GPUImageStillCamera alloc] initWithSessionPreset:AVCaptureSessionPreset1280x720 cameraPosition:AVCaptureDevicePositionBack];
camera.outputImageOrientation = UIInterfaceOrientationPortrait;

// 720 / 1280 = 0.5625
GPUImageCropFilter *squareCrop = [[GPUImageCropFilter alloc] initWithCropRegion:CGRectMake(0.0, 0.21875, 1.0, 0.5625)];

[camera addTarget:squareCrop];
[squareCrop addTarget:self.imageView];
[camera startCameraCapture];

您需要阅读GPUImage文档以了解如何正确设置框架,但是一旦您学会了如何使用它,它就会非常强大。