如何截取应用程序窗口的一部分?

我正在尝试保存屏幕的一部分屏幕截图,其中所有视图和图层都已合并。 我知道如何执行此操作的唯一方法是使用下面的代码。

下面的代码创建一个80×80的正方形,但左上角为0,0。

如何从整页截图中剪切出一个较小的矩形? 例如,我有一个320×480的全窗口截图,但我只需要一个80×80的方格,中心位于160,240?

UIGraphicsBeginImageContext(smallView.frame.size); [appDelegate.window.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); 

谢谢!

获取截图图像后使用此方法裁剪所需的部分

 CGImageRef imageRef = CGImageCreateWithImageInRect([screenshot CGImage], cropRect); UIImage *result = [UIImage imageWithCGImage:imageRef]; CGImageRelease(imageRef); 

未经测试的建议……

  UIGraphicsBeginImageContext(smallView.frame.size); [appDelegate.window.layer renderInContext:UIGraphicsGetCurrentContext()]; CGRect cropRect = UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext(); CGRectMake(160.0,240.0,smallView.frame.size.width,smallView.frame.size.height); CGImageRef croppedImageRef = CGImageCreateWithImageInRect(screenshot.CGImage,cropRect); UIImage *croppedScreenshot = [UIImage imageWithCGImage:croppedImageRef]; CGImageRelease(croppedImageRef); UIGraphicsEndImageContext();