iOS陆哥开发笔记(二十) (Quartz2D屏幕截图)
来源:互联网 发布:家庭网络布线 编辑:程序博客网 时间:2024/04/28 18:02
简介:
在程序开发中,有时候需要截取屏幕上的某一块内容.
完成截屏功能的核心代码:- (void)renderInContext:(CGContextRef)ctx;调用某个view的layer的renderInContext:方法即可
storyboard界面搭建:
代码:
#import "ViewController.h"
#import "MBProgressHUD+MJ.h"
@interface ViewController ()
- (IBAction)cutScreen;
@end
@implementation ViewController
- (IBAction)cutScreen{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
// 开启上下文
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 0.0);
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 将view绘制到图形上下文中
[self.view.layer renderInContext:ctx];
// 取出图片
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
// 结束上下文
UIGraphicsEndImageContext();
// 7.将image对象压缩为PNG格式的二进制数据
// NSData *data = UIImagePNGRepresentation(newImage);
// 8.写入文件
// NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"new.png"];
// [data writeToFile:path atomically:YES];
// 9. 保存到相册中
//将截屏保存到相册
UIImageWriteToSavedPhotosAlbum(newImage, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
});
}
// 系统建议使用的方法
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
if (error) {
[MBProgressHUD showError:@"保存失败"];
}else
{
[MBProgressHUD showSuccess:@"保存成功"];
}
}
API内容:
第一次保存到相册中, 系统会提醒用户, 点击允许后, 如果出现保存成功的弹框, 就能在相册中找到刚才的截图了
- iOS陆哥开发笔记(二十) (Quartz2D屏幕截图)
- iOS小明开发笔记(十七) (Quartz2D屏幕截图)
- iOS Quartz2D - 屏幕截图
- iOS陆哥开发笔记(十六) (Quartz2D简单使用二)
- Quartz2D做屏幕截图
- iOS陆哥开发笔记(十四) (Quartz2D简单介绍)
- iOS陆哥开发笔记(十五) (Quartz2D简单使用一)
- iOS陆哥开发笔记(十七) (Quartz2D图形上下文栈)
- iOS陆哥开发笔记(十八) (Quartz2D矩阵操作)
- iOS陆哥开发笔记(十九) (Quartz2D图片剪切)
- iOS小明开发笔记(十三) (Quartz2D简单使用二)
- iOS开发UI篇—Quartz2D(六) 图片水印,裁剪圆边框,屏幕截图 图片截屏 图片擦除
- iOS开发之屏幕截图
- iOS开发-简单获取View截图图像(Quartz2D)
- iOS开发笔记>> Quartz2D简单介绍
- Quartz2D——屏幕截图,背景平铺
- iOS开发- OpenGL ES屏幕截图
- iOS开发- OpenGL ES屏幕截图
- spring+springMVC+mybatis的框架项目基础环境搭建
- 分析iOS Crash文件:符号化iOS Crash文件的3种方法
- springMVC常用注解
- Hadoop 一:Hadoop版本
- Guava代码学习笔记
- iOS陆哥开发笔记(二十) (Quartz2D屏幕截图)
- Gin Web框架简介
- HDU 5661 Claris and XOR
- C++11 标准新特性: 右值引用与转移语义
- 流行的android组件大全
- 一百以内的素数
- shiny分级更新dataframe数值实现
- Spark学习
- 深搜-n皇后问题 1019