【深入浅出IOS开发】设置图片水印
2015-03-31 09:16
295 查看
设置图片水印的本质就是将两张图片混合成一个图片。
可以通过以下步骤来进行设置;
①创建一个基于位图的上下文(开启一个基于位图的上下文)
void UIGraphicsBeginImageContextWithOptions ( CGSize size, BOOL opaque, CGFloat scale )
size表示图层的大小,一般设置成背景图的大小
opaque表示是否透明:YES不透明 NO透明
scale表示缩放:0.0表示不缩放
②设置背景图片
③设置Logo图片
④从上下文中取得制作完毕的UIImage对象
UIImage * UIGraphicsGetImageFromCurrentImageContext ( void );
⑤关闭图层上下文
void UIGraphicsEndImageContext ( void );
⑥将图片格式转换为NSData
⑦然后保存到相关路径下面
[objc] view
plaincopy
- (void)testWater
{
UIImage *bgImage = [UIImage imageNamed:@"scene"];
// 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];
}
可以通过以下步骤来进行设置;
①创建一个基于位图的上下文(开启一个基于位图的上下文)
void UIGraphicsBeginImageContextWithOptions ( CGSize size, BOOL opaque, CGFloat scale )
size表示图层的大小,一般设置成背景图的大小
opaque表示是否透明:YES不透明 NO透明
scale表示缩放:0.0表示不缩放
②设置背景图片
③设置Logo图片
④从上下文中取得制作完毕的UIImage对象
UIImage * UIGraphicsGetImageFromCurrentImageContext ( void );
⑤关闭图层上下文
void UIGraphicsEndImageContext ( void );
⑥将图片格式转换为NSData
⑦然后保存到相关路径下面
[objc] view
plaincopy
- (void)testWater
{
UIImage *bgImage = [UIImage imageNamed:@"scene"];
// 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];
}
相关文章推荐
- 【深入浅出IOS开发】设置图片水印
- 【iOS-Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏
- 【iOS-Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏
- 【深入浅出IOS开发】绘制图片
- 【iOS-Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏
- 【深入浅出IOS开发】Xcode6中如何设置分类
- 【iOS-Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏
- iOS开发-设置tabBar的背景图片
- 【深入浅出IOS开发】图片剪切
- 【深入浅出IOS开发】Xcode6如何设置storyboard中Controller的开始箭头
- iOS开发笔记--将图片设置为主界面背景
- Objective-C ,ios,iphone开发基础:Category(分类,类别,范畴) ,UINavigationBar设置背景图片适配
- IOS开发:关于设置UIView的背景为图片的方法以及问题
- 【深入浅出IOS开发】在UIView中设置动画
- IOS开发之UIButton同时设置图片文字以及出发按钮时文字图片的切换
- IOS开发之xcode 4设置应用程序图标及加载图片
- IOS开发之xcode 4设置应用程序图标及加载图片
- iOS开发笔记--关于设置UIView的背景为图片的方法以及问题
- IOS开发之UIButton同时设置图片文字以及出发按钮时文字图片的切换
- 【深入浅出ios开发】偏好设置