ios 图片水印 图片裁剪和屏幕截图
2016-07-28 00:00
375 查看
摘要: ios 图片水印 图片裁剪和屏幕截图
iOS-图片水印,图片裁剪和屏幕截图
ios 图片水印 图片裁剪和屏幕截图
一.图片水印
二.图片裁剪
三,屏幕截图
iOS-图片水印,图片裁剪和屏幕截图
ios 图片水印 图片裁剪和屏幕截图
一.图片水印
1.创建个UIImageView @property (weak, nonatomic) IBOutlet UIImageView *neImage; 2.创建个方法实现水印功能 - (void)viewDidLoad { [super viewDidLoad]; UIImage *bgImage = [UIImage imageNamed:@""]; //创建一个位图上下文 UIGraphicsBeginImageContextWithOptions(bgImage.size, NO, 0.0); //将背景图片画入位图中 [bgImage drawInRect:CGRectMake(0, 0, bgImage.size.width, bgImage.size.height)]; //将水印Logo画入背景图中 UIImage *waterIma = [UIImage imageNamed:@""]; [waterIma drawInRect:CGRectMake(bgImage.size.width - 40 - 5, bgImage.size.height - 40 - 5, 40, 40)]; //取得位图上下文中创建的新的图片 UIImage *newimage = UIGraphicsGetImageFromCurrentImageContext(); //结束上下文 UIGraphicsEndImageContext(); //在创建的ImageView上显示出新图片 self.neImage.image = newimage; //压缩新照片为PNG格式的二进制数据 NSData *data = UIImagePNGRepresentation(newimage); //将图片写入到手机存储中 NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"new.png"]; [data writeToFile:path atomically:YES]; }
二.图片裁剪
//1.加载原图 UIImage *oldImage = [UIImage imageNamed:@"me"]; //2.获取位图上下文 CGFloat bigCic = oldImage.size.width + 2 * 2; UIGraphicsBeginImageContextWithOptions(CGSizeMake(bigCic, bigCic), NO, 0.0); //3.画大圆 [[UIColor whiteColor] set]; CGContextRef ctx = UIGraphicsGetCurrentContext(); CGContextAddArc(ctx, bigCic * 0.5, bigCic * 0.5, bigCic * 0.5, 0, M_PI * 2, 0); CGContextFillPath(ctx); //4.画小圆 CGFloat smallCic = oldImage.size.width * 0.5; CGContextAddArc(ctx, bigCic * 0.5 , bigCic * 0.5, smallCic, 0, M_PI * 2, 0); CGContextClip(ctx); //5.画图 [oldImage drawInRect:CGRectMake(2, 2, oldImage.size.width, oldImage.size.height)]; //6.获取新图 UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); //7.结束上下文 UIGraphicsEndImageContext(); //8.显示新图 self.IconView.image = newImage; //9.写入到手机存储 NSData *data = UIImagePNGRepresentation(newImage); NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"newClip.png"]; [data writeToFile:path atomically:YES];
三,屏幕截图
//1.开启位图上下文 UIGraphicsBeginImageContextWithOptions(self.view.frame.size, NO, 0.0); //2.渲染截图 [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; //3.获取新图 UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); //4.写入到手机存储 NSData *data = UIImagePNGRepresentation(newImage); NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"newClip.png"]; [data writeToFile:path atomically:YES]; //5.关闭上下文 UIGraphicsEndImageContext();
相关文章推荐
- iOS-对象模型的理解
- 3分钟实现iOS语言本地化/国际化(图文详解)
- iOS系统字体大全
- iOS 各种控件默认高度
- Xamarin.iOS提供没有匹配的配置文件
- 7.27 iOS 基础(加法计算器功能实现)
- xml文档解析
- iOS笔记
- 【转】IOS中定时器NSTimer的开启与关闭
- 【转】iOS 开发之协议protocal-代理传值delegate
- 【转】iOS开发-Protocol协议及委托代理(Delegate)传值
- iOS开发质量的那些事
- ios第一天学习
- GitHub 排名前 100 的安卓、iOS项目简介
- WWDC2016 Session笔记 - Xcode 8 Auto Layout新特性
- LINE最新版6.5.0在iOS上的删除信息取证
- iOS --- 自定义navigationBar的两种常见方式
- iOS--Masonry解决 tableViewCell 重用时约束冲突
- iOS 排序算法总结—冒泡排序
- 获取iOS设备信息的编程接口