iOS 截屏,并获取截屏图片

// 1、添加系统通知
[[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(userDidTakeScreenshot:)name:UIApplicationUserDidTakeScreenshotNotification object:nil];
// MARK:截屏响应
- (void)userDidTakeScreenshot:(NSNotification *)notification{NSLog(@"检测到截屏");// 截屏图片UIImage *image = [self getScreenHotImage];// 保存图片至相册UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
}// MARK:获取当前屏幕截屏数据
-  (UIImage *)getScreenHotImage{CGSize imageSize = CGSizeZero;UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;if (UIInterfaceOrientationIsPortrait(orientation)){imageSize = [UIScreen mainScreen].bounds.size;} else{imageSize = CGSizeMake([UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width);}UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);CGContextRef context = UIGraphicsGetCurrentContext();for (UIWindow *window in [[UIApplication sharedApplication] windows]){CGContextSaveGState(context);CGContextTranslateCTM(context, window.center.x, window.center.y);CGContextConcatCTM(context, window.transform);CGContextTranslateCTM(context, -window.bounds.size.width * window.layer.anchorPoint.x, -window.bounds.size.height * window.layer.anchorPoint.y);if (orientation == UIInterfaceOrientationLandscapeLeft){CGContextRotateCTM(context, M_PI_2);CGContextTranslateCTM(context, 0, -imageSize.width);} else if (orientation == UIInterfaceOrientationLandscapeRight){CGContextRotateCTM(context, -M_PI_2);CGContextTranslateCTM(context, -imageSize.height, 0);} else if (orientation == UIInterfaceOrientationPortraitUpsideDown) {CGContextRotateCTM(context, M_PI);CGContextTranslateCTM(context, -imageSize.width, -imageSize.height);}if ([window respondsToSelector:@selector(drawViewHierarchyInRect:afterScreenUpdates:)]){[window drawViewHierarchyInRect:window.bounds afterScreenUpdates:YES];} else{[window.layer renderInContext:context];}CGContextRestoreGState(context);}UIImage *image = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();return image;
}

iOS_截屏_获取截屏图片相关推荐

  1. android startactivity 跳到锁屏_「瀑布屏」手机到底好不好用?

    最近这几年,各大品牌都在围着手机屏幕打转,推陈出新的势头愈演愈烈.而在刘海屏.水滴屏和挖孔屏种种之后,我们又迎来了一个新名词,瀑布屏. 和当初 vivo 与 OPPO 尝试用升降结构隐藏前置摄像头的目 ...

  2. windows自带录屏_电脑录屏有哪些快捷键?设置帮助电脑快速录屏

    在电脑录屏的时候,快捷键能够帮助我们快速操作录屏.那你知道在电脑种有哪些是录屏操作的快捷键吗?其实windows就有自带的录屏的方法.今天分享一些关于电脑录屏的方法,自带的和专业的方法都有,满足我们日 ...

  3. python制作数据化大屏_可视化大屏经验分享

    最近在实际项目中积累了一些经验,以及看到很多大神们的分享,不断学习和丰富关于大屏设计的特点及数据可视化的表达方式.以下经验来自于多处资源,希望对有这方面需求的同学有所帮助. 大屏显示的一些特点: 1. ...

  4. 应用程序错误电脑黑屏_电脑黑屏了怎么办,电脑硬件win黑屏的6大原因以及解决方法...

    Windows出现黑屏的情况,其实可以说是十分经典的一个电脑问题了,相信有很多朋友都遇到过.而Windows黑屏的情况,除了系统软件导致之外,还有可能是电脑硬件问题导致的,也会比较难解决.而小编也整理 ...

  5. scrcpy投屏_安卓投屏利器——PC一键控制多台手机

    点击关注,我们共同每天进步一点点! 之前给大家介绍了投屏开源工具scrcpy(Scrcpy投屏,在电脑上流畅操控你的手机!),今天要介绍的投屏工具是在scrcpy的基础上进行了二次开发,使用更加友好. ...

  6. 手机画面尺寸多少满屏_各种大屏手机之中适合用户的最佳尺寸是多少?

    随着刘海屏.水滴屏.打孔屏等设计相继亮相,消费者除了购买手机时越来越关注它的外表,还会关注每款手机的屏幕占比情况.智能机发展至今时今日,人们似乎更加愿意使用到屏幕占比大的手机,毕竟在观影和使用上也能够 ...

  7. 安卓设备互相投屏_安卓投屏电脑版-安卓投屏下载v7.9.1-IE浏览器中文网站

    有了安卓投屏,你能将手机的内容通过有线或者无线连接的方式投屏到电脑上使用,用户可以同时连接多个设备,不收型号限制,软件提供丰富的工具,供大家传输文件.实现手机和电脑的实时互动. 安装说明 1.因底层代 ...

  8. windows录屏_电脑录屏软件哪个好用?试试这个专业方法

    在使用电脑的过程中,录屏是在生活和学习中经常使用到电脑录屏的功能.现在电脑录屏的方法有很多,功能和录屏的效果也参差不齐.那电脑录屏使用什么软件较好?下面介绍两个关于电脑录屏的方法,如果你也有录屏的需求 ...

  9. 虚拟桌面分屏_无需分屏软件!让一台主机为两台显示器分屏工作的方法

    临近春节,家人聚在一起本来是其乐融融,不过,常常因为争抢使用一些东西而闹出矛盾,比如说:为了抢用电脑,大人与小孩常常会有吵起来.为了社会和谐,小编今天就跟大家分享一下一台主机让两个显示器共用的方法,这 ...

最新文章

  1. mysql 事务 返回插入的值_Mysql同一个事务内记录成功插入后查询不出来
  2. 虚位以待C#-北京Objectiva
  3. 【信息安全】ECC加密算法入门介绍
  4. C++ 判断类是否有某变量
  5. windows下使用命令行将employees.sql导入mysql
  6. 规划 SOA 参考架构
  7. 执行jar包中的某个类
  8. FFDshow video encoder -CLSID
  9. 用ajax获取淘宝关键字接口
  10. 用mysql搭建蚂蚁笔记_利用蚂蚁笔记搭建个人云笔记/博客
  11. web项目调用qq临时会话功能实现方法
  12. Exploring Architectural Ingredients of Adversarially Robust Deep Neural Networks
  13. 关于md导入时本地图片外链失败的解决方法
  14. 苹果笔记本安装系统显示英文的解决办法
  15. 集中隔离第3天(其实说的都是前2天的事) 2022.2.27
  16. C++ 点(.)操作符和箭头(-)操作符
  17. css聊天气派,css如何实现小尖角聊天对话框带尖角的说话泡泡效果
  18. html5 制作书架展示 PHP,简单做出HTML5翻页效果文字特效
  19. WrapPanel控件增加滚动条
  20. 一名游戏制作人的设计感悟

热门文章

  1. 缺水危机影响芯片供应,台积电启动供水计划
  2. LeetCode琅琊榜第二层-最长回文子串问题(动态规划)
  3. tgw介绍和股票历史日线数据程序化下载——量化数据中台系列(四)
  4. 手机卡顿反应慢用久了又慢又卡一招解决
  5. Matlab调整图像大小的方法
  6. 移动应用架构演变及泛前端趋势下移动团队破局
  7. android同步功能吗,Android手机和iCloud同步是什么鬼?
  8. Robotics Toolbox
  9. 查询1997年出生的学生mysql_Mysql学习三
  10. 阿米巴经营管理模式是什么,能做什么,有什么好处和坏处?