我有一个使用AVCaptureSession拍摄并返回到我的视图控制器的图像。
以下是相机界面的屏幕截图:
AVCaptureSession拍摄FULL SCREEN照片,现在我想将其裁剪为上方可见窗口的大小。
窗口将始终位于相同位置且大小相同。
高度= 360(180非视网膜)px,宽度= 640(320非视网膜)px,x = 0,y = 160。
如何将图像裁剪为这些坐标,使图像本身现在为360 x 640?
任何帮助都会很棒,谢谢!
答案 0 :(得分:0)
你需要做这样的事情。我正在打顶,所以这可能不是100%正确。
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, 640, 360, 8, 4 * width, colorSpace, kCGImageAlphaPremultipliedFirst);
CGColorSpaceRelease(colorSpace);
CGContextDrawImage(context, CGRectMake(0,-160,640,360), cgImgFromAVCaptureSession);
CGImageRef image = CGBitmapContextCreateImage(context);
UIImage* myCroppedImg = [UIImage imageWithCGImage:image];
CGContextRelease(context);