iOS-OC-图片水印,图片裁剪和屏幕截图
2016-07-22 17:32
459 查看
1.图片水印
<span style="font-size:18px;">- (void)getnewImage {
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.newImage = newimage;
//压缩新照片为PNG格式的二进制数据
NSData *data = UIImagePNGRepresentation(newimage);
//将图片写入到手机存储中
NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"new.png"];
[data writeToFile:path atomically:YES];
}
</span>
2.图片裁剪
<span style="font-size:18px;"> //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];</span>
3.屏幕截图
<span style="font-size:18px;">//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();</span>
<span style="font-size:18px;">- (void)getnewImage {
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.newImage = newimage;
//压缩新照片为PNG格式的二进制数据
NSData *data = UIImagePNGRepresentation(newimage);
//将图片写入到手机存储中
NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"new.png"];
[data writeToFile:path atomically:YES];
}
</span>
2.图片裁剪
<span style="font-size:18px;"> //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];</span>
3.屏幕截图
<span style="font-size:18px;">//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();</span>
相关文章推荐
- iOS:切图相关
- 正则表达的使用
- iOS调用系统的电话功能
- CALayer
- iOS原生二维码扫描&libqrencode生成二维码
- ios——AFNetworking的简单使用
- iOS: 向Github的README.md里添加图片
- ios developer tiny share-20160722
- ios developer tiny share-20160722
- iOS 10 个实用小技巧(总有你不知道的和你会用到的)
- iOS设计模式之类族(class cluster)
- ios数字转emoj表情
- view加底线
- 【原创】修复ios输入框获取焦点时不支持fixed的bug
- ios颜色生成图片的方法
- 在写一个iOS应用之前必须做的7件事(附相关资源)
- 在写一个iOS应用之前必须做的7件事(附相关资源)
- iOS- 多线程中如何去保证线程安全
- iOS 开发 Pch 文件的正确使用
- iOS 简单文件操作