我将这些代码用于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);但我的屏幕包含屏幕底部的工具栏。我不想在捕获的屏幕上显示工具栏。如何裁剪工具栏?如何修改我的代码?
发布于 2013-01-10 16:17:34
我认为您可以捕获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();玩得开心!
发布于 2013-01-10 16:04:29
试试这个:
UIGraphicsBeginImageContext(/*CGRECT*/);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();在CGRect中,传递你想要截图的rect。
希望它能帮助你..
发布于 2013-01-10 16:08:27
设置您的
CGRect screenshotFrame = CGRectMake(0, 0, 320, 436);
// 480(screen height) - 44(toolbar height) = 436https://stackoverflow.com/questions/14253204
复制相似问题