美文网首页iOS
图片水印(Quartz2D)

图片水印(Quartz2D)

作者: iOS_成才录 | 来源:发表于2015-11-12 19:23 被阅读141次

    一、水印

    +  在图片上加的防止他人盗图的半透明logo、文字、图标
    

    二、如何实现在图片上加水印

      1. 开启位图上下文

    UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);

    
    - 2.绘制图片与文字
    
    - 3.利用一个函数,从上下文中获取一张图片
    ```objc
     // 从上下文内容中生成一张图片
        image = UIGraphicsGetImageFromCurrentImageContext();
    
    • 4.关闭位图上下文,有开启就要有关闭
      // 结束上下文
        UIGraphicsEndImageContext();
      
    
    - 5.注意:可以将图片转为二进制NSData,然后将其写到本地桌面
    
    ```objc
        NSData *data = UIImageJPEGRepresentation(image, 0.00001);
        [data writeToFile:@"/Users/cjp/Desktop/image.jpg" atomically:YES];
    

    三、具体代码实现
    #import "ViewController.h"

        @implementation ViewController
        
        - (void)viewDidLoad {
            [super viewDidLoad];
            // Do any additional setup after loading the view, typically from a nib.
            // 给一张图片添加文字或者Logo,生成一张新的带有文字或者Logo图片
            
            // 绘制图片到位图上下文,然后再利用位图上下文生成一张新的图片
            
            // 加载图片
            UIImage *image = [UIImage imageNamed:@"小黄人"];
            
            // 1.开启位图上下文
            // size:上下文的尺寸
            // opaque:不透明,总结:在上下文中一般都是设置不透明度,控件才是设置透明度
            // scale: 0表示不缩放
            UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);
            
            // 绘制图片
            [image drawAtPoint:CGPointZero];
            
            // 绘制文字
            NSString *str = @"小黄人";
            [str drawAtPoint:CGPointZerowithAttributes:@{NSForegroundColorAttributeName : [UIColor redColor]}];
            
            // 从上下文内容中生成一张图片
            image = UIGraphicsGetImageFromCurrentImageContext();
            
            // 结束上下文
            UIGraphicsEndImageContext();
            
            // 把图片写入到桌面
            
            // image -> NSData
            // 把图片生成一个png格式的二进制数据
            // png已经高清图片格式
        //    NSData *data = UIImagePNGRepresentation(image);
            // compressionQuality:图片质量
            
            NSData *data = UIImageJPEGRepresentation(image, 0.00001);
            [data writeToFile:@"/Users/cjp/Desktop/image.jpg" atomically:YES];
        }
        @end

    相关文章

      网友评论

        本文标题:图片水印(Quartz2D)

        本文链接:https://www.haomeiwen.com/subject/hfhfhttx.html