ios-day15-04(Quartz 2D之屏幕截图、并将截图保存到文件中)

本文详细介绍了如何在iOS设备上实现屏幕截图功能,并通过Core Graphics框架将其转换为UIImage对象,然后将其保存为PNG文件。文章包括核心代码解析,帮助开发者理解和实现屏幕截图功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源码下载地址:http://download.youkuaiyun.com/detail/liu537192/8520789


效果图:



核心代码:

//
//  JLViewController.m
//  04-屏幕截图
//
//  Created by Mac on 15-3-21.
//  Copyright (c) 2015年 vxinyou. All rights reserved.
//

#import "JLViewController.h"

@interface JLViewController ()

- (IBAction)clip;
@end

@implementation JLViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    
}
/**
 *  "截图"按钮
 */
- (IBAction)clip {
    // 延迟1秒后执行截图功能
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        
        // 1,开启基于位图的上下文
        // 参数一:新图片的尺寸
        // 参数二:新图片是否透明。一般设置为NO:不透明
        // 参数三:固定写法:0.0
        UIGraphicsBeginImageContextWithOptions(self.view.frame.size, NO, 0.0);
        
        // 2,将控制器view的layer渲染到基于位图的上下文
        [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
        
        // 3,取出图片
        UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
        
        // 4,结束上下文
        UIGraphicsEndImageContext();
        
        // 5,保存截图到文件
        // 压缩成二进制数据
        NSData *data = UIImagePNGRepresentation(newImage);
        // 保存到文件
        NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"new.png"];
        [data writeToFile:path atomically:YES];
    });
    
}
@end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值