iOS截图和保存图片
来源:互联网 发布:软件系统项目总结 编辑:程序博客网 时间:2024/04/19 09:28
最近整理一下以往的项目,分享一段截图和保存图片的代码,刚开始的时候写这东西的时候,有些凌乱,现在看来还是比较简单的,算是记录一下。直接上代码了,有注释,可以直接套用。
//// ViewController.m// Test//// Created by york on 16/3/30.// Copyright © 2016年 裴杨威. All rights reserved.//#define DEVICE_WIDTH [UIScreen mainScreen].bounds.size.width#define DEVICE_HEIGHT [UIScreen mainScreen].bounds.size.height#import "ViewController.h"@interface ViewController (){ UIImageView *topImageView; UIImageView *bottomImageView;}@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.view.backgroundColor = [UIColor grayColor]; topImageView = [[UIImageView alloc] initWithFrame:CGRectMake((DEVICE_WIDTH-252)/2, 20, 252, 220)]; topImageView.image = [UIImage imageNamed:@"1.jpg"]; [self.view addSubview:topImageView]; bottomImageView = [[UIImageView alloc] initWithFrame:CGRectMake((DEVICE_WIDTH-140)/2, CGRectGetMaxY(topImageView.frame), 140, 220)]; bottomImageView.image = [UIImage imageNamed:@"2.jpg"]; [self.view addSubview:bottomImageView]; UIButton *saveTopImageBtn = [UIButton buttonWithType:UIButtonTypeSystem]; saveTopImageBtn.frame = CGRectMake(10, CGRectGetMaxY(bottomImageView.frame)+20, (DEVICE_WIDTH-30)/2, 30); [saveTopImageBtn setTitle:@"截图上图" forState:0]; saveTopImageBtn.tag = 100; [saveTopImageBtn addTarget:self action:@selector(saveBtnClick:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:saveTopImageBtn]; UIButton *saveBottomImageBtn = [UIButton buttonWithType:UIButtonTypeSystem]; saveBottomImageBtn.frame = CGRectMake(CGRectGetMaxX(saveTopImageBtn.frame)+10, CGRectGetMaxY(bottomImageView.frame)+20, (DEVICE_WIDTH-30)/2, 30); [saveBottomImageBtn setTitle:@"截图下图" forState:0]; saveBottomImageBtn.tag = 101; [saveBottomImageBtn addTarget:self action:@selector(saveBtnClick:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:saveBottomImageBtn]; UIButton *saveAllImageBtn = [UIButton buttonWithType:UIButtonTypeSystem]; saveAllImageBtn.frame = CGRectMake(10, CGRectGetMaxY(saveTopImageBtn.frame)+20, (DEVICE_WIDTH-30)/2, 30); [saveAllImageBtn setTitle:@"截图整屏" forState:0]; saveAllImageBtn.tag = 102; [saveAllImageBtn addTarget:self action:@selector(saveBtnClick:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:saveAllImageBtn]; UIButton *SaveNetImageBtn = [UIButton buttonWithType:UIButtonTypeSystem]; SaveNetImageBtn.frame = CGRectMake(CGRectGetMaxX(saveTopImageBtn.frame)+10, CGRectGetMaxY(saveBottomImageBtn.frame)+20, (DEVICE_WIDTH-30)/2, 30); [SaveNetImageBtn setTitle:@"保存网络图片" forState:0]; SaveNetImageBtn.tag = 103; [SaveNetImageBtn addTarget:self action:@selector(saveBtnClick:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:SaveNetImageBtn]; }- (BOOL)isOpenAlbum//判断是否能打开相册{ if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypePhotoLibrary]) { return YES; } else { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"无法打开相册" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil]; [alert show]; return NO; }}#pragma mark -#pragma mark --保存通过url获取的图片--- (void)saveNetImage{ NSData *dateImg = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://d.hiphotos.baidu.com/image/h%3D200/sign=8663264274f082023292963f7bfbfb8a/f3d3572c11dfa9eca13b947665d0f703918fc1be.jpg"]]; UIImage *image = [UIImage imageWithData:dateImg]; UIImageWriteToSavedPhotosAlbum(image, self, @selector(imageSavedToPhotosAlbum:didFinishSavingWithError:contextInfo:), nil);}#pragma mark -#pragma mark --截图--- (UIImage *)getRealImage:(UIView *)view{ /* UIGraphicsBeginImageContextWithOptions(<#CGSize size#>, <#BOOL opaque#>, <#CGFloat scale#>) size ----> 新创建的位图上下文的大小 opaque ----> 透明度开关 scale ----> 缩放因子 0指的是系统会自动设置正确的比例 */ UIGraphicsBeginImageContextWithOptions(view.bounds.size,YES,0);//创建一个基于位图的上下文 [view drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES]; UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return image;}#pragma mark -#pragma mark --系统保存图片的方法--- (void)imageSavedToPhotosAlbum:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{ if (!error) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"保存成功" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil]; [alert show]; }else { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"保存失败" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil]; [alert show]; }}#pragma mark -#pragma mark --按钮点击事件--- (void)saveBtnClick:(UIButton *)sender{ switch (sender.tag) { case 100: { if ([self isOpenAlbum]) { UIImageWriteToSavedPhotosAlbum([self getRealImage:topImageView], self, @selector(imageSavedToPhotosAlbum:didFinishSavingWithError:contextInfo:), nil); } } break; case 101: { if ([self isOpenAlbum]) { UIImageWriteToSavedPhotosAlbum([self getRealImage:bottomImageView], self, @selector(imageSavedToPhotosAlbum:didFinishSavingWithError:contextInfo:), nil); } } break; case 102: { if ([self isOpenAlbum]) { UIImageWriteToSavedPhotosAlbum([self getRealImage:self.view], self, @selector(imageSavedToPhotosAlbum:didFinishSavingWithError:contextInfo:), nil); } } break; case 103: { if ([self isOpenAlbum]) { [self saveNetImage]; } } break; default: break; }}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end
2 0
- iOS截图和保存图片
- 截图片和保存图片
- iOS开发 - 保存图片到相册和保存屏幕截图到相册
- iOS---如何截图,如何将图片保存到相册
- iOS学习,截图保存
- 图片处理 截图+保存图片
- IOS: 应用截图尺寸和启动图片
- ios--图片拾取和保存
- Android ScrollView截图和图片保存到相册的方式
- iOS图片加工---图片水印,图片裁剪和屏幕截图
- 截图和保存图
- 截图和保存
- iOS 应用程序截图和保存至系统相册
- 【iOS开发-截图】截图并保存相册
- IOS为图片截图
- iOS-OC-图片水印,图片裁剪和屏幕截图
- iOS 获取屏幕截图和缩放、裁剪图片
- [IOS 开发] 图片拾取和保存
- Zookeeper原理简介
- HDU 2059 龟兔赛跑(dp)
- 什么是环境变量?道理在这四个故事中
- Weblogic解密脚本(无需weblogic环境)
- msyql 中按照数字型字符串进行排序
- iOS截图和保存图片
- EL表达式
- 通过通知打开activity,结束后返回主页面
- CoreAnimation动画入门(总结)
- SpringMVC笔记
- sort colors
- iOS quartzCore第三章——CAEmitterLayer和CAEmitterCell详解
- 作用域与闭包
- UIimage 加载图片