美文网首页iOS开发TipsiOS 开发每天分享优质文章Swift
iOS给图片添加文字水印和图片水印

iOS给图片添加文字水印和图片水印

作者: 金丝楠 | 来源:发表于2017-04-26 10:11 被阅读3163次

加水印的方式有很多,比如给图片添加图片水印、文字水印,或者给视频添加图片水印、文字水印。本文首先讲解如何给图片添加文字水印、图片水印,即图文合成和图片合成效果。

一、给图片添加文字水印

// 给图片添加文字水印:
+ (UIImage *)jx_WaterImageWithImage:(UIImage *)image text:(NSString *)text textPoint:(CGPoint)point attributedString:(NSDictionary * )attributed{
    //1.开启上下文
    UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);
    //2.绘制图片
    [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
    //添加水印文字
    [text drawAtPoint:point withAttributes:attributed];
    //3.从上下文中获取新图片
    UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext();
    //4.关闭图形上下文
    UIGraphicsEndImageContext();
    //返回图片
    return newImage;
}

二、给图片添加图片水印

给图片添加图片水印,这里提供两种方法,以供参考。

方法一

// 给图片添加图片水印
+ (UIImage *)jx_WaterImageWithImage:(UIImage *)image waterImage:(UIImage *)waterImage waterImageRect:(CGRect)rect{
    
    //1.获取图片
    
    //2.开启上下文
    UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);
    //3.绘制背景图片
    [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
    //绘制水印图片到当前上下文
    [waterImage drawInRect:rect];
    //4.从上下文中获取新图片
    UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext();
    //5.关闭图形上下文
    UIGraphicsEndImageContext();
    //返回图片
    return newImage;
}

方法二

1、新建类别UIImage+LL继承自UIImage

/**
 *  UIImage+LL.h
 */
#import <UIKit/UIKit.h>

@interface UIImage (LL)
/**
 *  打水印
 *
 *  @param backgroundImage   背景图片
 *  @param markName 右下角的水印图片
 */
+ (instancetype)waterMarkWithImageName:(NSString *)backgroundImage andMarkImageName:(NSString *)markName;
@end

2、UIImage+LL.m中配置图片合成的代码

/**
 *  UIImage+LL.m
 */
#import "UIImage+LL.h"

@implementation UIImage (LL)

+ (instancetype)waterMarkWithImageName:(NSString *)backgroundImage andMarkImageName:(NSString *)markName{
    
    UIImage *bgImage = [UIImage imageNamed:backgroundImage];
    
    UIGraphicsBeginImageContextWithOptions(bgImage.size, NO, 0.0);
    [bgImage drawInRect:CGRectMake(0, 0, bgImage.size.width, bgImage.size.height)];
    
    UIImage *waterImage = [UIImage imageNamed:markName];
    CGFloat scale = 0.3;
    CGFloat margin = 5;
    CGFloat waterW = waterImage.size.width * scale;
    CGFloat waterH = waterImage.size.height * scale;
    CGFloat waterX = bgImage.size.width - waterW - margin;
    CGFloat waterY = bgImage.size.height - waterH - margin;
    
    [waterImage drawInRect:CGRectMake(waterX, waterY, waterW, waterH)];
    
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return newImage;
}
@end

3、背景图片右下角添加水印图片

        /**
         *  这个方法只需要传入一个需要被打水印的图片名字和一个水印图标的名字就可以自动合成水印图片
         */
        UIImage *image = [UIImage waterMarkWithImageName:@"bg.jpeg" andMarkImageName:@"logo"];

        _imageView.image = image;

4、效果图如下

加水印之图片合成.png

相关文章

  • iOS给图片添加文字水印和图片水印

    加水印的方式有很多,比如给图片添加图片水印、文字水印,或者给视频添加图片水印、文字水印。本文首先讲解如何给图片添加...

  • 图片添加二维码水印教程

    本博客介绍一下用jdk awt实现图片加文字水印和图片水印的方法 一、图片文字水印 原来图片 加上文字水印后图片 ...

  • Android给图片加文字和图片水印

    先看效果图,左侧是原图,中间是添加文字水印,右侧是添加图片水印。 实现方法: 1、载入原始图片2、载入水印图片3、...

  • 向多个Word文件批量添加水印,含图片水印和文字水印

    向多个Word文件批量添加水印,含图片水印和文字水印

  • 带你玩转七牛云存储——高级篇

    七牛云图片存储优点 支持各种尺寸的图片缩放; 支持图片自动压缩; 支持水印添加:图片水印、文字水印两种模式; 图片...

  • 水印

    图片水印文字 图片水印图片

  • 图片加水印

    加文字水印 图片水印 给字体加颜色

  • iOS 图片处理

    本文主要列出简单的图片处理代码,如:压缩图形大小,裁剪图片,添加文字水印,添加图片水印,压缩图片大小并保存。 本来...

  • 图片批量添加文字水印

    为了版权安全,可以给自己设计的图片设置批量文字水印功能 思路分析 为图片添加文字水印,主要用到PIL库中的相应类,...

  • 给图片添加文字水印

    功能需求 在图片的给定位置上添加文字水印 水印可以旋转和设置透明度 先说说自己的实现思路: 先创建具有透明背景色的...

网友评论

    本文标题:iOS给图片添加文字水印和图片水印

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