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. 品质标签分几种颜色_小标签大学问,如何给实验室仪器贴标签?
  2. DTS和PTS的解释(FFMPEG、HLS相关)
  3. 蓝桥杯练习系统习题-算法训练3
  4. dhcp怎么开启 linux,怎么开启DHCP服务器啊
  5. cuda,nvidia-driver ,cudnn下载地址及版本对应
  6. 【转】我们到底为了什么钻研技术?
  7. vi交互式批量替换 vi批量替换 vi查找和替换
  8. python canny函数_python库skimage 应用canny边缘探测算法
  9. LeetCode—数据库简单题(三)
  10. 如何删除pdf中计算机属性,从 PDF 中删除敏感内容
  11. 转-----EasyCHM制作教程
  12. 使用pyQt5 + agora + leanCloud实现基于学生疲劳检测的在线课堂
  13. Linux中查看文件夹大小的命令
  14. 浅谈游戏《武士刀:零》——赛博朋克风格城市中的刀光剑影
  15. 迪恩素材教程资源图片下载站源码 dz社区论坛discuz 模板
  16. IP/24是什么意思?
  17. 当使用VMware给虚拟机扩展硬盘容量时,显示无法扩展容量并提示:在部分链上无法执行所调用的函数,请打开父虚拟磁盘。
  18. 软路由系统, OpenWrt (Lede), Ubuntu server, 爱快, ROS, Pfsense, m0n0wall, OPNsense
  19. Spring cloud 多种限流方案
  20. 【转摘】未来财务会是什么样子?

热门文章

  1. 继三英战吕布之后,只有他敢卷土重来
  2. asp mysql 查询记录数_ASP如何查询ACCESS数据库中上一周的所有记录
  3. 解读:未来30年新兴科技趋势报告(AI Frist,IoT Second)
  4. cmd中如何进入其他文件夹
  5. Javaweb知识 day22 AjaxJson
  6. 树莓派系统搭载arduino单片机 打开双目摄像头
  7. mysql模糊 精准查询_Mysql 精准查询与模糊查询【原创】
  8. 小白带你走进Eplan
  9. RedmiBook 蓝屏 关机后出现 No Bootable Devices 问题的解决方法
  10. 【收藏】Android开源项目和 框架