iOS-截图和把截图封装成一个方法

//
//  UIImage+Tools.h
//  截屏
//
//  Created by YaguangZhu on 15/9/10.
//  Copyright (c) 2015年 YaguangZhu. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UIImage (Tools)
+(instancetype)imageWithCaptureView:(UIView *)view;

@end

//
//  UIImage+Tools.m
//  截屏
//
//  Created by YaguangZhu on 15/9/10.
//  Copyright (c) 2015年 YaguangZhu. All rights reserved.
//

#import "UIImage+Tools.h"

@implementation UIImage (Tools)

+ (instancetype)imageWithCaptureView:(UIView *)view
{
    UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, 0.0);
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    [view.layer renderInContext:ctx];

    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return newImage;
}
@end
//
//  ViewController.m
//  截屏
//
//  Created by YaguangZhu on 15/9/10.
//  Copyright (c) 2015年 YaguangZhu. All rights reserved.
//

#import "ViewController.h"
#import "UIImage+Tools.h"
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    UIImage *newImage = [UIImage imageWithCaptureView:self.view];
    NSData *data = UIImagePNGRepresentation(newImage);

    [data writeToFile:@"/Users/yaguangzhu/Desktop/00d1.png" atomically:YES];

}
- (void)CaptureView
{
    UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 0.0);
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    [self.view.layer renderInContext:ctx];

    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();
    NSData *data = UIImagePNGRepresentation(newImage);

    [data writeToFile:@"/Users/yaguangzhu/Desktop/00d1.png" atomically:YES];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
时间: 2024-07-31 14:44:16

iOS-截图和把截图封装成一个方法的相关文章

ios-裁剪加裁剪描边加把裁剪封装成一个方法类

// // UIImage+UItool.h // 图片裁剪 // // Created by YaguangZhu on 15/9/10. // Copyright (c) 2015年 YaguangZhu. All rights reserved. // #import <UIKit/UIKit.h> @interface UIImage (UItool) + (instancetype)imageWithName:(NSString *)name border:(CGFloat)bord

IOS批量截取视频截图 UIImage mp4 IOS Video

IOS批量截取视频截图 //生成截图 NSString *path = [NSHomeDirectory() stringByAppendingString:@"/Documents"]; NSLog(@"path %@", path); for (int i = 0; i<[mItems count]; i++) { NSMutableDictionary *info = (NSMutableDictionary *)mItems[i]; //视频信息 NS

iOS开发项目篇—36封装微博业务

iOS开发项目篇—36封装微博业务 一.简单说明 1.请求参数面向模型 2.请求结果面向模型 3.对控制器来说应该屏蔽业务细节.不让控制器关心(知道)业务细节,它只需要知道自己在做某个业务 @通过一个专门的业务处理类:处理微博业务细节 说明: 业务:加载新的微博首页数据 实现:给新浪服务器发送一个GET请求 业务:加载更多的首页微博数据 实现1:给新浪服务器发送一个GET请求 实现2:去沙盒中加载以前离线缓存的微博数据  二.实现 1.新建一个微博业务处理类,继承自NSObject 微博业务处理

[iOS微博项目 - 3.5] - 封装业务

github: https://github.com/hellovoidworld/HVWWeibo   A.封装微博业务 1.需求 把微博相关业务(读取.写微博) 界面控制器不需要知道微博操作细节(例如选择从网络读取还是缓存读取) 2.实现 把微博操作封装成一个工具类 把微博网络请求的参数和返回结果也封装成一个类 3.实现 (1)基础参数类 由于多数请求都需要access_token,所以封装一个参数父类 1 // 2 // HVWBaseParam.h 3 // HVWWeibo 4 //

iOS开发项目篇—37封装其他业务

iOS开发项目篇—37封装其他业务 一.简单说明 项目分层的步骤: (1)新建一个模型类封装请求参数 (2)新建一个模型类封装请求结果(返回结果) (3)新建一个业务类封装专一的业务 二.获得用户信息业务的封装 (1)新建一个模型类封装请求参数 查看新浪官方获取用户信息需要哪些请求参数: 封装请求参数的类的代码设计: YYUserInfoParam.h文件 1 // 2 // YYUserInfoParam.h 3 // 4 5 #import <Foundation/Foundation.h>

iOS开发项目篇—35封装网络请求

iOS开发项目篇—35封装网络请求 一.简单说明 1.分析项目对网路请求(AFN框架)的依赖 项目中,多个控制器都使用了AFN框架发送网络请求,如果AFN2.0存在重大BUg,或者是升级至3.0版本,那么对于整个项目都是及其危险的,所有用到AFN的地方都需要做出相应的修改. 另外,如果现在要求不再使用AFN框架,而是使用一个新的框架,那么有关AFN的依赖所关联的所有代码都需要重新来过. 如果把afn这个第三方框架从项目中删除的话,那么项目就相当于作废了,这就是项目对第三方框架的强依赖的体现. 说

@autoclosure-可以让表达式自动封装成一个闭包

@autoclosure 在闭包前面加上@autoclosure func or(first:Bool,@autoclosure second:()->Bool) -> Bool { if first { return true } else { return second() } } 再来看下调用 or(2>3,second: 4>3) 这看起来既干净又方便理解,一看就知道2>3与4>3进行或运算. @autoclosure:Apple为了让语法看起来更漂亮些,在Sw

Z点餐系统项目原型截图与交付截图

产品原型截图 交付产品截图 原文地址:https://www.cnblogs.com/ShroudzZ/p/11167840.html

iOS中有3种常见的多线程编程方法

1.NSThread 这种方法需要管理线程的生命周期.同步.加锁问题,会导致一定的性能开销 2.NSOperation和NSOperationQueue 是基于OC实现的.NSOperation以面向对象的方式封装了需要执行的操作,然后可以将这个操作放到一个NSOperationQueue中去异步执行.不必关心线程管理.同步等问题. 3.Grand Centeral Dispatch 简称GCD,iOS4才开始支持,是纯C语言的API.自iPad2开始,苹果设备开始有了双核CPU,为了充分利用这