当前位置:首页 > 开发 > 移动开发 > 正文

iOS-给图片添加水印效果的方法并保存图片到指定路径

发表于: 2013-06-23   作者:dcj3sjt126com   来源:转载   浏览次数:
摘要: 这里介绍两种方法: 方法一:添加文字水印,这里说的文字水印是指将开发者定义的文字直接添加到图片上,代码如下: UIImage *img = [UIImage imageNamed:@"3G_alert.png"]; //需要加水印的图片 CGSize size = self.view.frame.size; //设置上下文(画布)大小 UIGraphi

这里介绍两种方法:

方法一:添加文字水印,这里说的文字水印是指将开发者定义的文字直接添加到图片上,代码如下:

UIImage *img = [UIImage imageNamed:@"3G_alert.png"];  //需要加水印的图片
    CGSize size = self.view.frame.size; //设置上下文(画布)大小
    UIGraphicsBeginImageContext(size); //创建一个基于位图的上下文(context),并将其设置为当前上下文
    CGContextRef contextRef = UIGraphicsGetCurrentContext(); //获取当前上下文
    NSString *title = @"舵手网络";  //需要添加的水印文字
    CGContextTranslateCTM(contextRef, 0, self.view.bounds.size.height);  //画布的高度
    CGContextScaleCTM(contextRef, 1.0, -1.0);  //画布翻转
    CGContextDrawImage(contextRef, self.view.frame, [img CGImage]);  //在上下文种画当前图片
 
    [[UIColor redColor] set];  //上下文种的文字属性
    CGContextTranslateCTM(contextRef, 0, self.view.bounds.size.height);
    CGContextScaleCTM(contextRef, 1.0, -1.0);
    UIFont *font = [UIFont boldSystemFontOfSize:40];
    [title drawInRect:CGRectMake(100, 400, 200, 80) withFont:font];
    UIImage *res =UIGraphicsGetImageFromCurrentImageContext();  //从当前上下文种获取图片
    UIGraphicsEndImageContext(); //移除栈顶的基于当前位图的图形上下文。
    NSArray *savePath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *p = [savePath objectAtIndex:0];
    NSLog(@"%@",p);
    NSString *dataFilePath = [p stringByAppendingPathComponent:@"1.png"];
 
    NSData *imageData = UIImagePNGRepresentation(res);
    [imageData writeToFile:dataFilePath atomically:YES];
 
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
    [imageView setImage:res];
    [self.view addSubview:imageView];

 方法二:添加图片水印,顾名思义,就是两张图片,一张原图,一张水印图片,代码如下:

 UIImage *img = [UIImage imageNamed:@"demo.jpg"];  //需要加水印的图片
    UIImage *smallImg = [UIImage imageNamed:@"water.png"];
    CGSize size = self.view.frame.size; //设置上下文(画布)大小
    UIGraphicsBeginImageContext(size); //创建一个基于位图的上下文(context),并将其设置为当前上下文
    CGContextRef contextRef = UIGraphicsGetCurrentContext(); //获取当前上下文
    CGContextTranslateCTM(contextRef, 0, self.view.bounds.size.height);  //画布的高度
    CGContextScaleCTM(contextRef, 1.0, -1.0);  //画布翻转
 
    CGContextDrawImage(contextRef, self.view.frame, [img CGImage]);  //在上下文种画当前图片
    CGContextDrawImage(contextRef, CGRectMake(100, 50, 200, 80), [smallImg CGImage]);
    UIImage *res = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext(); //移除栈顶的基于当前位图的图形上下文。
    NSArray *savePath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *p = [savePath objectAtIndex:0];
    NSLog(@"%@",p);
    NSString *dataFilePath = [p stringByAppendingPathComponent:@"1.png"];
 
    NSData *imageData = UIImageJPEGRepresentation(res, 1.0);
    [imageData writeToFile:dataFilePath atomically:YES];
 
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
    [imageView setImage:res];
    [self.view addSubview:imageView];

 

iOS-给图片添加水印效果的方法并保存图片到指定路径

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
写在开始 不能用代码同时实现半透明和不规则形状的水印,只能选其一,有哪位高手指点一下不胜感激
#region 创建水印 [图片水印] [坐标位置] /// <summary> /// 创建水印 [图片水印] [坐标位置]
package michael.io.image; import java.awt.AlphaComposite; import java.awt.Graphics2D; import
在web程序开发中,相信很多同行们都碰到过图片压缩,生成缩略图的操作,比如产品的图片,会员的照片
原始图片: 添加水印后的图片: //golang图片式水印处理 //未实现Web上传等代码... //sam //2013.6.
客户要求在打印的时候背景上要有水印效果的文字,用来显示打印内容的发布时间等,程序如下: 代码 pr
下面是需要加水印的aspx <img id="code_img_opened_c2b5c6bb-87a0-44d7-ad55-0ad890548c05" clas
周末在家上围脖,看到sina围脖上图片都有水印,想到Java有专门Image的处理包,同样应该可以实现水印
周末在家上围脖,看到sina围脖上图片都有水印,想到Java有专门Image的处理包,同样应该可以实现水印
周末在家上围脖,看到sina围脖上图片都有水印,想到Java有专门Image的处理包,同样应该可以实现水印
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号