1.添加水印图片
UIImage *bgImage = [UIImage imageNamed:@"scene"];
//
上小文 : 基于位图(bitmap) , 所有的东西需要绘制到一张新的图片上去
//
1.创建一个基于位图的上下文(开启一个基于位图的上下文)
// size :
新图片的尺寸
// opaque : YES : 不透明, NO :
透明
//
这行代码过后.就相当于常见一张新的bitmap,也就是新的UIImage对象
UIGraphicsBeginImageContextWithOptions(bgImage.size, NO, 0.0);
// 2.画背景
[bgImage
drawInRect:CGRectMake(0, 0, bgImage.size.width,
bgImage.size.height)];
// 3.画右下角的水印
UIImage *waterImage = [UIImage imageNamed:@"logo"];
CGFloat scale = 0.2;
CGFloat margin =
5;
CGFloat waterW = waterImage.size.width *
scale;
CGFloat waterH = waterImage.size.height *
scale;
CGFloat waterX = bgImage.size.width - waterW -
margin;
CGFloat waterY = bgImage.size.height - waterH -
margin;
[waterImage drawInRect:CGRectMake(waterX, waterY,
waterW, waterH)];
//
4.从上下文中取得制作完毕的UIImage对象
UIImage *newImage =
UIGraphicsGetImageFromCurrentImageContext();
// 5.结束上下文
UIGraphicsEndImageContext();
//
6.显示到UIImageView
self.iconView.image =
newImage;
//
7.将image对象压缩为PNG格式的二进制数据
NSData *data =
UIImagePNGRepresentation(newImage);
//
UIImageJPEGRepresentation(<#UIImage *image#>, <#CGFloat
compressionQuality#>)
//
8.写入文件
NSString *path =
[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,
YES) lastObject]
stringByAppendingPathComponent:@"new.png"];
[data
writeToFile:path atomically:YES];
2.裁剪图片(加圆环的)
// 1.加载原图
UIImage *oldImage = [UIImage
imageNamed:@"me"];
//
2.开启上下文
CGFloat borderW = 2; //
圆环的宽度
CGFloat imageW = oldImage.size.width + 2 *
borderW;
CGFloat imageH = oldImage.size.height + 2 *
borderW;
CGSize imageSize = CGSizeMake(imageW,
imageH);
UIGraphicsBeginImageContextWithOptions(imageSize,
NO, 0.0);
//
3.取得当前的上下文
CGContextRef ctx =
UIGraphicsGetCurrentContext();
//
4.画边框(大圆)
[[UIColor whiteColor]
set];
CGFloat bigRadius = imageW * 0.5; //
大圆半径
CGFloat centerX = bigRadius; //
圆心
CGFloat centerY = bigRadius;
CGContextAddArc(ctx, centerX, centerY, bigRadius, 0, M_PI * 2,
0);
CGContextFillPath(ctx); // 画圆
// 5.小圆
CGFloat smallRadius =
bigRadius - borderW;
CGContextAddArc(ctx, centerX,
centerY, smallRadius, 0, M_PI * 2, 0);
//
裁剪(后面画的东西才会受裁剪的影响)
CGContextClip(ctx);
// 6.画图
[oldImage
drawInRect:CGRectMake(borderW, borderW, oldImage.size.width,
oldImage.size.height)];
//
7.取图
UIImage *newImage =
UIGraphicsGetImageFromCurrentImageContext();
// 8.结束上下文
UIGraphicsEndImageContext();
//
9.显示图片
self.iconView.image = newImage;
// 10.写出文件
NSData *data =
UIImagePNGRepresentation(newImage);
NSString *path =
[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,
YES) lastObject]
stringByAppendingPathComponent:@"new.png"];
[data
writeToFile:path atomically:YES];
原文:http://www.cnblogs.com/qingsongeasy/p/3667563.html