iOS的屏幕截图

即时通讯使用此代码的屏幕截图为iOS:

CGImageRef screen = UIGetScreenImage(); UIImage *image = [UIImage imageWithCGImage:screen]; CGImageRelease(screen); UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil); CGRect screenshotFrame; CGImageRef screenshotRef = CGImageCreateWithImageInRect(screenshotRef, screenshotFrame); UIImage * screenshot = [[(UIImage *)screenshotRef retain] autorelease]; CGImageRelease(screenshotRef); 

但我的屏幕包含工具栏的屏幕底部。我不希望工具栏在我的屏幕上。 我怎样才能裁剪工具栏? 我怎样才能修改我的代码?

我认为你可以捕获self.view的图层,因为它是根视图

 if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { //Retina display UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, [UIScreen mainScreen].scale); } else { UIGraphicsBeginImageContext(self.view.bounds.size); } [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); 

玩的开心!

类似的问题已经标记为已解决。 这里是链接到您的解决scheme

iOS屏幕截图的一部分

尝试这个:

 UIGraphicsBeginImageContext(/*CGRECT*/); [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *screenImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); 

CGRect传递你想要CGRect的矩形。

希望它可以帮助你..

设置你的

 CGRect screenshotFrame = CGRectMake(0, 0, 320, 436); // 480(screen height) - 44(toolbar height) = 436