博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iphone开发之屏幕截图
阅读量:5995 次
发布时间:2019-06-20

本文共 1284 字,大约阅读时间需要 4 分钟。

突然有个需求要求在程序中截图,调查实验后后在此分享一下。

先添加头文件

#import <QuartzCore/QuartzCore.h>

这里使用两种方法测试

一个是私有api的UIGetScreenImage()

一个是UIGraphics的方法

- (UIImage*) takeShot 

{    
    //private api and device only 不支持模拟器哦

    extern CGImageRef UIGetScreenImage();//需要先extern 

    UIImage *image = [UIImage imageWithCGImage:UIGetScreenImage()]; 
    UIImageWriteToSavedPhotosAlbum(image,nil,nil,nil); 
    return image; 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    //plan A. 
    self.view.backgroundColor = [UIColor redColor]; 
    UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow]; 
    UIGraphicsBeginImageContext(screenWindow.frame.size); 
    [screenWindow.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil); 
    //plan B:private api and device only 
#if !TARGET_IPHONE_SIMULATOR 
    self.view.backgroundColor = [UIColor greenColor]; 
    [self performSelector:@selector(takeShot) withObject:nil afterDelay:1]; 
#elif 
    self.view.backgroundColor = [UIColor clearColor]; 
#endif 
}

图片在相册中查看,使用之后的效果比较,使用itouch 4,高清屏幕。

UIGraphics的图片比较模糊,感觉是按像素画出来的结果

官方的api果然不是盖得,高清屏也不在话下,相当清晰。

机器不在身边,就不上图了。

听说4.0后就公开,不在reject了,没试过。

本文转自 arthurchen 51CTO博客,原文链接:http://blog.51cto.com/arthurchen/574926,如需转载请自行联系原作者
你可能感兴趣的文章
Jenkins实现Android自动化打包
查看>>
[裴礼文数学分析中的典型问题与方法习题参考解答]4.5.9
查看>>
[数学故事]国王的重赏
查看>>
Selenium2+python自动化63-简易项目搭建
查看>>
Managed Debugging Assistant &#39;PInvokeStackImbalance&#39; has detected a problem in 解决方案
查看>>
centos7 安装mysql5.7.11注意事项
查看>>
[20150727]''与NULL.txt
查看>>
上海往事之教会宝宝学游泳
查看>>
SAP的系统审计以及SM19的使用
查看>>
你真的会玩SQL吗?冷落的Top和Apply
查看>>
SharePoint 2013 图文开发系列之创建内容类型
查看>>
cookie 简介
查看>>
ios和android内嵌h5页面联调小结
查看>>
PHP SG扩展管理Superglobals
查看>>
两种jdk版本的多个tomcat按windows服务的安装问题的解决
查看>>
为IE创建更好的XMLHttpRequest对象
查看>>
java 图片 批量 压缩 +全部压缩
查看>>
ODL Beryllium (Be) - The Fourth Release of OpenDaylight PRODUCTION-READY OPEN SDN PLATFORM
查看>>
Cortex-M0 ARM-GCC 编译链接选项
查看>>
JFinal中EhCache利用RMI方式分布式缓存配置
查看>>