IOS绘制图片水印以及文字水印
来源:互联网 发布:淘宝女装批发店铺有吗 编辑:程序博客网 时间:2024/04/30 02:32
今天在做项目的时候有用到给用户上传的图片添加水印的功能,于是就封装了一个UIImage的分类,直接用一行代码调用就可以给图片绘上水印了。
水印分为两种,一种是图片水印,另一种就是文字水印。首先让我们来看看如何绘制图片水印。
首先我们创建了一个分类:
既然是要调用,那肯定使用public属性的方法,在.h文件中申明方法
//图片水印+(UIImage *)imageWithBackgroudImage:(NSString *)bkImagename andLogoImage:(NSString *)lgImagename;
然后实现它,大致的原理就是先绘制主图,填充整个图形上下文,然后再绘制Logo图片,然后通过图形上下文获取当前的图片,也就是两者合为一体的图片。代码如下:
+(UIImage *)imageWithBackgroudImage:(NSString *)bkImagename andLogoImage:(NSString *)lgImagename{ //0.取出主图片 UIImage *mainImage = [UIImage imageNamed:bkImagename]; //1.取得图片上下文bitmap(三个参数分别为:大小,是否透明,缩放度) UIGraphicsBeginImageContextWithOptions(mainImage.size, NO, 0); //2.绘制主图 [mainImage drawAtPoint:CGPointMake(0, 0)]; //3.取出logo图片 UIImage *logoImage = [UIImage imageNamed:lgImagename]; //4.绘制logo图片 [logoImage drawAtPoint:CGPointMake(mainImage.size.width-logoImage.size.width-10, 10)]; //5.取出图形上下文中得图片 UIImage *finalimage = UIGraphicsGetImageFromCurrentImageContext(); //6.传回图片 return finalimage;}
同理,添加文字LOGO也是一样,只不过需要用NSDictionary来保存字符串的一些属性,代码如下:
+(UIImage *)imageWithBackgroudImage:(NSString *)bkImagename andStringLogo:(NSString *)string{ //0.取得主图片 UIImage *mainImage = [UIImage imageNamed:bkImagename]; //1.取出图形上下文 UIGraphicsBeginImageContextWithOptions(mainImage.size, NO, 0); //2.绘制 [mainImage drawAtPoint:CGPointMake(0, 0)]; //3.设置字体 NSDictionary *dict = @{NSFontAttributeName:[UIFont fontWithName:@"HelveticaNeue-Bold" size:8.0f],NSForegroundColorAttributeName:[UIColor whiteColor]}; //4.绘制文字 [string drawAtPoint:CGPointMake(mainImage.size.width-50, 0) withAttributes:dict]; //5.取出图片 UIImage *finalimage = UIGraphicsGetImageFromCurrentImageContext(); //6.传回图片 return finalimage; }
这样一来,我们就算封装好了这个方法。只需要在控制器里调用一句话就可以轻松给图片添加水印了。
//图片水印使用方法 UIImage *image = [UIImage imageWithBackgroudImage:@"psb" andLogoImage:@"logo1"];
其实这个并不是很难很高深的应用,但在开发过程中我们要善于去发现,一些常用的方法和属性,我们应当将它封装起来,提高我们代码运行的效率。
0 0
- IOS绘制图片水印以及文字水印
- IOS 图片水印或者文字
- iOS 图片添加文字水印
- 图片上绘制水印文字(类目)
- php 图片水印 文字水印
- Java添加水印+图片水印+文字水印
- 水印绘制文字
- IOS给图片增加水印(图片、文字)
- IOS-图片加水印(文字+图片+裁剪)
- ios-画一个图片水印和文字水印
- ios图片加水印或文字
- ios图片加水印或文字
- ios图片添加文字或者水印
- ios图片加水印或文字
- iOS 图片加水印 后文字
- IOS图片加水印或文字
- ios图片加水印或文字
- iOS图片加水印或文字
- iOS开发之C语言---for循环
- UI---UIImageView
- 路漫漫其修远兮,吾将上下而求索。
- RadASM的测试工程!
- iOS基础知识:if 语句以及if语句的使用注意事项
- IOS绘制图片水印以及文字水印
- addTarget各个参数的含义:
- v2
- ubuntu14.04 源码安装Qt 5.4
- Android Studio平台使用GreenDao操作数据库
- Spark standalone模式安装
- HDU-2845-Beans-简单dp
- CoreData的版本迭代
- <LeetCode><Easy> 70 Climbing Stairs #斐波那契数列