添加图片水印

来源:互联网 发布:手机免费读书软件 编辑:程序博客网 时间:2024/06/15 13:13


一、水印的概念和作用

1> 水印的概念:

在图片上加的半透明logo、文字、图标。

2> 水印的作用:

a. 可以展示图片的出处;

b. 一些网站为了版权问题、广告而添加;

c. 有时候,在手机客户端app中也需要用到水印技术。比如微博用户拍完照片后,可以在照片上打个水印,标识这个图片是属于谁的。

二、水印的实现方式和核心代码

1> 水印的实现方式:

利用Quartz2D,将水印(文字、LOGO)画到图片上。

2> 核心代码

开启一个基于BitMap(位图)的图形上下文

void  UIGraphicsBeginImageContextWithOptions(CGSizesize, BOOL opaque, CGFloat scale)

从上下文中取得图片(UIImage

UIImage*image = UIGraphicsGetImageFromCurrentImageContext();

结束基于位图的图形上下文

void  UIGraphicsEndImageContext();

三、图片加水印的基本思路

a. 添加文字水印

         1>创建位图上下文;

         2>把图片画上去;

         3>把文字画上去;

         4>从上下文中取出图片。

b. 添加图片水印

         1>创建位图上下文;

         2>把图片画上去;

         3>加载 logo 图片(水印图片),把水印图片也画上去;

         4>从上下文中取出图片。

四、图片加水印的Demo

-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event

{

    // 获取原图片

    UIImage* image = [UIImageimageNamed:@"hani"];

    // 计算图片的size

    CGSize imageSize = CGSizeMake(image.size.width,image.size.height);

    // 开启图片类型的图形上下文

   UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);

    // 绘制图片

    [image drawAtPoint:CGPointZero];

    // 水印的文字

    NSString* str = @"你妈妈喊你回家吃饭";

    // 绘制文字水印

[strdrawAtPoint:CGPointMake(30,30)withAttributes:@{NSFontAttributeName : [UIFont systemFontOfSize:20],NSForegroundColorAttributeName : [UIColor whiteColor] }];   

// 水印的图片

    UIImage* logo = [UIImage imageNamed:@"me"];

    // 绘制图片水印

    [logodrawAtPoint:CGPointMake(imageSize.width - logo.size.width - 30,imageSize.height - logo.size.height - 30)];

    // 取图片

    image =UIGraphicsGetImageFromCurrentImageContext();

    // 关闭图片类型的图形上下文

    UIGraphicsEndImageContext();

    // 保存到相册中

    UIImageWriteToSavedPhotosAlbum(image, NULL,NULL, NULL);

}

保存到相册中的图片如下

 


 

 


0 0
原创粉丝点击