首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS的屏幕截图

iOS的屏幕截图
EN

Stack Overflow用户
提问于 2013-01-10 16:01:37
回答 3查看 4.7K关注 0票数 1

我将这些代码用于iOS的屏幕截图:

代码语言:javascript
复制
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);

但我的屏幕包含屏幕底部的工具栏。我不想在捕获的屏幕上显示工具栏。如何裁剪工具栏?如何修改我的代码?

EN

回答 3

Stack Overflow用户

发布于 2013-01-10 16:17:34

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

代码语言:javascript
复制
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();

玩得开心!

票数 2
EN

Stack Overflow用户

发布于 2013-01-10 16:04:29

试试这个:

代码语言:javascript
复制
UIGraphicsBeginImageContext(/*CGRECT*/);     
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

CGRect中,传递你想要截图的rect。

希望它能帮助你..

票数 1
EN

Stack Overflow用户

发布于 2013-01-10 16:08:27

设置您的

代码语言:javascript
复制
CGRect screenshotFrame = CGRectMake(0, 0, 320, 436);
// 480(screen height) - 44(toolbar height) = 436
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14253204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档