美文网首页
iOS oc-为图片加水印

iOS oc-为图片加水印

作者: 青菜白玉堂 | 来源:发表于2017-06-28 11:08 被阅读23次

    1.传入图片及字体即可添加水印

    -(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:20],  //设置字体

    NSForegroundColorAttributeName : [UIColor redColor]      //设置字体颜色

    };

    //    [mark drawInRect:CGRectMake(0, 10, 80, 32) withAttributes:attr];                //左上角

    //    [mark drawInRect:CGRectMake(w - 80, 10, 80, 32) withAttributes:attr];            //右上角

    [mark drawInRect:CGRectMake(w - 80, h - 32 - 10, 80, 32) withAttributes:attr];  //右下角

    //    [mark drawInRect:CGRectMake(0, h - 32 - 10, 80, 32) withAttributes:attr];        //左下角

    UIImage *aimg = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return aimg;

    }

    2.用drawInRect很方便,图片、文字都可以加

    // 画水印

    - (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;

    }

    相关文章

      网友评论

          本文标题:iOS oc-为图片加水印

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