在我的应用程序中,我有一个“相机捕捉”功能,我使用布拉德·拉森( Brad,ty)的GPUImageFramework,GPUImageStillCamera拍摄静止图像。
stillCamera = [[GPUImageStillCamera alloc] initWithSessionPreset:AVCaptureSessionPresetPhoto cameraPosition:
AVCaptureDevicePositionBack];正如你所看到的。会话预置是AVCaptureSessionPresetPhoto,在iPhone 4中提供1529x2048输出,4s (8mp)设备给我2448x3264。
下面的图片是我如何使用GPUStillCamera的。在这里,有矩形,在本例中,是捕捉到的图像的裁剪。

当我捕获图像时,代码片段。
- (IBAction)takePhoto:(id)sender
{
[stillCamera capturePhotoAsJPEGProcessedUpToFilter:filter withCompletionHandler:^(NSData *processedJPEG, NSError *error){
//1529x2048 when iPhone 4 and 2448x3265 when on 4s
UIImage *rawImage = [[UIImage alloc]initWithCGImage:[[UIImage imageWithData:processedJPEG]CGImage]scale:1.0 orientation:UIImageOrientationUp];
**CGRect rect = CGRect{?,?,?,?};**
UIImage *imageFromRect = [rawImage imageAtRect:rect ];
}我的问题是。我如何知道可以传递给imageAtRect方法的点(x,y,w,h),该方法将从rawImage绘制子图像?并且将只获得矩形内的图像部分(不管捕获图像的分辨率如何),如上面的屏幕所示?我应该手动做还是有什么数学技巧你可以建议吗?
谢谢!
发布于 2014-07-01 06:43:11
您可以使用这个图像裁剪类和libray文件,您可以获得裁剪后的UIImage的大小、大小和原点。
http://code4app.net/ios/Custom-image-cropper/51e5f03f6803fac530000000
另外,如果您愿意,可以动态地更改裁剪图像的大小。易于使用和实现。请看一遍本教程。
https://stackoverflow.com/questions/11823781
复制相似问题