zoukankan      html  css  js  c++  java
  • iOS开发-给图片添加水印

    为了防止自己辛苦做的项目被别人盗走,采取把图片添加水印,在此表示图片的独一无二。加水印不是要在上面添加上几个Label,而是我们要把字画到图片上成为一个整体,下面这篇文章主要介绍IOS给图片添加水印,有需要的小伙伴可以来参考下

    方法一:水印为文字

    效果如图:

    #import "ViewController.h"
    
    @interface ViewController ()
    @property (weak, nonatomic) IBOutlet UIImageView *imageVIew;
    @property (weak, nonatomic) IBOutlet UITextField *markName;
    @property (weak, nonatomic) IBOutlet UIImageView *resultImageView;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        
    }
    
    - (IBAction)getResultImage {
        
        self.resultImageView.image = [self watermarkImage:self.imageVIew.image withName:self.markName.text];
        
        
    }
    
    
    /**
     *  照片加水印
     *
     *  @param img  需要加水印的照片
     *  @param name 需要加上去的文字
     *
     *  @return 加好文字的照片
     */
    -(UIImage *)watermarkImage:(UIImage *)img withName:(NSString *)name
    
    {
        
        NSString* mark = name;
        
        int w = img.size.width;
        
        int h = img.size.height;
        
        UIGraphicsBeginImageContext(img.size);
        
        [img drawInRect:CGRectMake(0,0, w, h)];
        
        NSDictionary *attr = @{
                               
                               NSFontAttributeName: [UIFont boldSystemFontOfSize:10],  //设置字体
                               
                               NSForegroundColorAttributeName : [UIColor blackColor]   //设置字体颜色
                               
                               };
        
    //    [mark drawInRect:CGRectMake(, , , ) withAttributes:attr];         //左上角
    //    
    //    [mark drawInRect:CGRectMake(w - , , , ) withAttributes:attr];      //右上角
    //    
    //    [mark drawInRect:CGRectMake(w - , h - - , , ) withAttributes:attr];  //右下角
        
        [mark drawInRect:CGRectMake(50, h - 20 , 100, 20) withAttributes:attr];    //左下角
        
        UIImage *aimg = UIGraphicsGetImageFromCurrentImageContext();
        
        UIGraphicsEndImageContext();
        
        return aimg;
        
    }

    方法二:水印为图片

    // 画水印 
    - (UIImage *) imageWithWaterMask:(UIImage*)mask inRect:(CGRect)rect 
    { 
    #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 40000 
     if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 4.0) 
     { 
     UIGraphicsBeginImageContextWithOptions([self size], NO, 0.0); // 0.0 for scale means "scale for device's main screen". 
     } 
    #else 
     if ([[[UIDevice currentDevice] systemVersion] floatValue] < 4.0) 
     { 
     UIGraphicsBeginImageContext([self size]); 
     } 
    #endif 
     //原图 
     [self drawInRect:CGRectMake(0, 0, self.size.width, self.size.height)]; 
     //水印图 
     [mask drawInRect:rect]; 
     UIImage *newPic = UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext(); 
     return newPic; 
    }
  • 相关阅读:
    SharePoint 2013 图文开发系列之自定义字段
    SharePoint 2013 图文开发系列之Visual Studio 创建母版页
    SharePoint 2013 图文开发系列之代码定义列表
    SharePoint 2013 图文开发系列之计时器任务
    SharePoint 2013 图文开发系列之应用程序页
    SharePoint 2013 图文开发系列之事件接收器
    SharePoint 2013 图文开发系列之可视化WebPart
    SharePoint 2013 图文开发系列之WebPart
    SharePoint 2013 对二进制大型对象(BLOB)进行爬网
    SharePoint 2013 状态机工作流之日常报销示例
  • 原文地址:https://www.cnblogs.com/dingjianjaja/p/5038316.html
Copyright © 2011-2022 走看看