//
|
// UMSocialWarterMarkConfig.h
|
// testWatermarkImage
|
//
|
// Created by 张军华 on 16/12/23.
|
// Copyright © 2016年 张军华. All rights reserved.
|
//
|
|
#import <Foundation/Foundation.h>
|
#import <UIKit/UIKit.h>
|
#import <CoreGraphics/CoreGraphics.h>
|
|
@class UMSocialStringWarterMarkConfig;
|
@class UMSocialImageWarterMarkConfig;
|
|
typedef NS_ENUM(NSInteger, UMSocialWarterMarkPositon) {
|
UMSocialWarterMarkPositonNone = 0,
|
|
/************************************************************************
|
水印字符串的位置,目前并没有用--start
|
*************************************************************************/
|
UMSocialStringWarterMarkTopLeft = (1 << 0),
|
UMSocialStringWarterMarkTopRight = (1 << 1),
|
UMSocialStringWarterMarkBottomLeft = (1 << 2),
|
UMSocialStringWarterMarkBottomRight = (1 << 3),
|
/************************************************************************
|
水印字符串的位置,目前并没有用--end
|
*************************************************************************/
|
|
//水印图片的位置
|
UMSocialImageWarterMarkTopLeft = (1 << 4),
|
UMSocialImageWarterMarkTopRight = (1 << 5),
|
UMSocialImageWarterMarkBottomLeft = (1 << 6),
|
UMSocialImageWarterMarkBottomRight = (1 << 7),
|
|
/************************************************************************
|
水印字符串和水印图片的相对位置,目前并没有用(如果图片和字符串都在同一个位置,就需要设置相对位置)--start
|
*************************************************************************/
|
UMSocialImageWarterMarkForwardStringWarterMark = (1 << 8), //图片在字符串前面
|
UMSocialStringWarterMarkForwardImageWarterMark = (1 << 9),//字符串在图片前面
|
UMSocialImageWarterMarkAboveStringWarterMark = (1 << 10),//图片在字符串上面
|
UMSocialStringWarterMarkAboveImageWarterMark = (1 << 11),//字符串在图片上面
|
/************************************************************************
|
水印字符串和水印图片的相对位置,目前并没有用(如果图片和字符串都在同一个位置,就需要设置相对位置)--end
|
*************************************************************************/
|
};
|
|
typedef NS_OPTIONS(NSInteger, UMSocialStringAndImageWarterMarkPositon) {
|
UMSocialStringAndImageWarterMarkPositonNone = 0,
|
|
UMSocialOnlyImageWarterMarkTopLeft = UMSocialImageWarterMarkTopLeft,//水印图片左上
|
UMSocialOnlyImageWarterMarkTopRight = UMSocialImageWarterMarkTopRight,//水印图片右上
|
UMSocialOnlyImageWarterMarkBottomLeft = UMSocialImageWarterMarkBottomLeft,//水印图片左下
|
UMSocialOnlyImageWarterMarkBottomRight = UMSocialImageWarterMarkBottomRight,//水印图片右下
|
|
/************************************************************************
|
以下的枚举变量,目前并没有用--start
|
*************************************************************************/
|
UMSocialStringWarterMarkTopLeftAndImageWarterMarkTopLeft = (UMSocialStringWarterMarkTopLeft | UMSocialImageWarterMarkTopLeft),//水印字符串左上,水印图片左上
|
UMSocialStringWarterMarkTopLeftAndImageWarterMarkTopRight = (UMSocialStringWarterMarkTopLeft | UMSocialImageWarterMarkTopRight),//水印字符串左上,水印图片右上
|
UMSocialStringWarterMarkTopLeftAndImageWarterMarkBottomLeft = (UMSocialStringWarterMarkTopLeft | UMSocialImageWarterMarkBottomLeft),//水印字符串左上,水印图片左下
|
UMSocialStringWarterMarkTopLeftAndImageWarterMarkBottomRight = (UMSocialStringWarterMarkTopLeft | UMSocialImageWarterMarkBottomRight),//水印字符串左上,水印图片右下
|
|
UMSocialStringWarterMarkTopRightAndImageWarterMarkTopLeft = (UMSocialStringWarterMarkTopRight | UMSocialImageWarterMarkTopLeft),//水印字符串右上,水印图片左上
|
UMSocialStringWarterMarkTopRightAndImageWarterMarkTopRight = (UMSocialStringWarterMarkTopRight | UMSocialImageWarterMarkTopRight),//水印字符串右上,水印图片右上
|
UMSocialStringWarterMarkTopRightAndImageWarterMarkBottomLeft = (UMSocialStringWarterMarkTopRight | UMSocialImageWarterMarkBottomLeft),//水印字符串右上,水印图片左下
|
UMSocialStringWarterMarkTopRightAndImageWarterMarkBottomRight = (UMSocialStringWarterMarkTopRight | UMSocialImageWarterMarkBottomRight),//水印字符串右上,水印图片右下
|
|
UMSocialStringWarterMarkBottomLeftAndImageWarterMarkTopLeft = (UMSocialStringWarterMarkBottomLeft | UMSocialImageWarterMarkTopLeft),//水印字符串左下,水印图片左上
|
UMSocialStringWarterMarkBottomLeftAndImageWarterMarkTopRight = (UMSocialStringWarterMarkBottomLeft | UMSocialImageWarterMarkTopRight),//水印字符串左下,水印图片右上
|
UMSocialStringWarterMarkBottomLeftAndImageWarterMarkBottomLeft = (UMSocialStringWarterMarkBottomLeft | UMSocialImageWarterMarkBottomLeft),//水印字符串左下,水印图片左下
|
UMSocialStringWarterMarkBottomLeftAndImageWarterMarkBottomRight = (UMSocialStringWarterMarkBottomLeft | UMSocialImageWarterMarkBottomRight),//水印字符串左下,水印图片右下
|
|
UMSocialStringWarterMarkBottomRightAndImageWarterMarkTopLeft = (UMSocialStringWarterMarkBottomRight | UMSocialImageWarterMarkTopLeft),//水印字符串右下,水印图片左上
|
UMSocialStringWarterMarkBottomRightAndImageWarterMarkTopRight = (UMSocialStringWarterMarkBottomRight | UMSocialImageWarterMarkTopRight),//水印字符串右下,水印图片右上
|
UMSocialStringWarterMarkBottomRightAndImageWarterMarkBottomLeft = (UMSocialStringWarterMarkBottomRight | UMSocialImageWarterMarkBottomLeft),//水印字符串右下,水印图片左下
|
UMSocialStringWarterMarkBottomRightAndImageWarterMarkBottomRight = (UMSocialStringWarterMarkBottomRight | UMSocialImageWarterMarkBottomRight),//水印字符串右下,水印图片右下
|
|
/************************************************************************
|
以下的枚举变量,目前并没有用---end
|
*************************************************************************/
|
};
|
|
extern UMSocialWarterMarkPositon getStringWarterMarkPostion(UMSocialStringAndImageWarterMarkPositon stringAndImageWarterMarkPositon);
|
extern UMSocialWarterMarkPositon getImageWarterMarkPostion(UMSocialStringAndImageWarterMarkPositon stringAndImageWarterMarkPositon);
|
extern UMSocialWarterMarkPositon getRelatedWarterMarkPostion(UMSocialStringAndImageWarterMarkPositon stringAndImageWarterMarkPositon);
|
|
|
/**
|
* 水印配置类
|
* 用户可以设置水印的配置类,目前只是提供图片水印
|
*
|
* method1:
|
* 用户可以通过默认的配置类来配置水印
|
* 代码如下:
|
UMSocialWarterMarkConfig* warterMarkConfig = [UMSocialWarterMarkConfig defaultWarterMarkConfig];
|
*
|
* method2:
|
* 用户可以通过创建自己的配置类来配置水印
|
* 代码如下:
|
//创建UMSocialImageWarterMarkConfig
|
UMSocialImageWarterMarkConfig* imageWarterMarkConfig = [[UMSocialImageWarterMarkConfig alloc] init];
|
//配置imageWarterMarkConfig的参数
|
//...TODO
|
//创建UMSocialWarterMarkConfig
|
UMSocialWarterMarkConfig* warterMarkConfig = [[UMSocialWarterMarkConfig alloc] init];
|
//配置warterMarkConfig的参数
|
//...TODO
|
//设置配置类
|
[warterMarkConfig setUserDefinedImageWarterMarkConfig:imageWarterMarkConfig];
|
*
|
*
|
*/
|
@interface UMSocialWarterMarkConfig : NSObject<NSCopying>
|
|
/**
|
* 默认配置类
|
*
|
* @return 默认配置类
|
*/
|
+(UMSocialWarterMarkConfig*)defaultWarterMarkConfig;
|
|
|
@property(nonatomic,readonly,strong)UMSocialStringWarterMarkConfig* stringWarterMarkConfig;//字符串配置类对象
|
@property(nonatomic,readonly,strong)UMSocialImageWarterMarkConfig* imageWarterMarkConfig;//图片配置类对象
|
|
/**
|
* 字符串和图片的位置
|
* 默认是defaultWarterMarkConfig的配置为文字和图片右下角,图片在前文字在后
|
*/
|
@property(nonatomic,readwrite,assign)UMSocialStringAndImageWarterMarkPositon stringAndImageWarterMarkPositon;//字符串和图片的位置
|
@property(nonatomic,readwrite,assign)CGFloat spaceBetweenStringWarterMarkAndImageWarterMark;//字符水印和图片水印的间距
|
|
/**
|
* 设置用户自定义的配置类
|
*
|
* @param imageWarterMarkConfig 图片配置类对象
|
*/
|
-(void)setUserDefinedImageWarterMarkConfig:(UMSocialImageWarterMarkConfig*)imageWarterMarkConfig;
|
|
@end
|
|
|
/**
|
* 字符水印配置类
|
* 目前此配置类没有使用
|
*/
|
@interface UMSocialStringWarterMarkConfig : NSObject<NSCopying>
|
|
/**
|
* 默认配置类
|
*
|
* @return 默认配置类
|
*/
|
+(UMSocialStringWarterMarkConfig*)defaultStringWarterMarkConfig;
|
|
//检查参数是否有效
|
-(BOOL)checkValid;
|
|
@property(nonatomic,readwrite,strong)NSAttributedString* warterMarkAttributedString;//水印字符串
|
@property(nonatomic,readwrite,assign)NSUInteger warterMarkStringLimit;//水印字符串的字数限制
|
@property(nonatomic,readwrite,strong)UIColor* warterMarkStringColor;//水印字符串的颜色(要想保证色值半透明,可以创建半透明的颜色对象)
|
@property(nonatomic,readwrite,strong)UIFont* warterMarkStringFont;//水印字符串的字体
|
|
/**
|
* 靠近水平边的边距
|
* 与UMSocialWarterMarkPositon的停靠位置有关,
|
如:为UMSocialStringWarterMarkBottomRight时,paddingToHorizontalParentBorder代表与父窗口的右边间隙.
|
如:UMSocialStringWarterMarkTopLeft时,paddingToHorizontalParentBorder代表与父窗口的左边间隙.
|
*/
|
@property(nonatomic,readwrite,assign)CGFloat paddingToHorizontalParentBorder;//靠近水平边的边距
|
|
/**
|
* 靠近垂直边的边距
|
* 与UMSocialWarterMarkPositon的停靠位置有关,
|
如:为UMSocialStringWarterMarkBottomRight时,paddingToHorizontalParentBorder代表与父窗口的下边的间隙.
|
如:UMSocialStringWarterMarkTopLeft时,paddingToHorizontalParentBorder代表与父窗口的上边间隙.
|
*/
|
@property(nonatomic,readwrite,assign)CGFloat paddingToVerticalParentBorder;//靠近垂直边的边距
|
|
@property(nonatomic,readonly,assign)CGAffineTransform warterMarkStringTransform;//水印字符串的矩阵
|
|
@end
|
|
/**
|
* 图片配置类
|
*/
|
@interface UMSocialImageWarterMarkConfig : NSObject<NSCopying>
|
|
/**
|
* 默认配置类
|
*
|
* @return 默认配置类
|
*/
|
+(UMSocialImageWarterMarkConfig*)defaultImageWarterMarkConfig;
|
|
//检查参数是否有效
|
-(BOOL)checkValid;
|
|
@property(nonatomic,readwrite,strong)UIImage* warterMarkImage;//水印图片
|
@property(nonatomic,readwrite,assign)CGFloat warterMarkImageScale;//水印图片相对父图片的缩放因素(0-1之间)
|
@property(nonatomic,readwrite,assign)CGFloat warterMarkImageAlpha;//水印图片的Alpha混合值
|
|
/**
|
* 靠近水平边的边距
|
* 与UMSocialWarterMarkPositon的停靠位置有关,
|
如:为UMSocialImageWarterMarkBottomRight时,paddingToHorizontalParentBorder代表与父窗口的右边间隙.
|
如:UMSocialImageWarterMarkTopLeft时,paddingToHorizontalParentBorder代表与父窗口的左边间隙.
|
*/
|
@property(nonatomic,readwrite,assign)CGFloat paddingToHorizontalParentBorder;//靠近水平边的边距
|
|
/**
|
* 靠近垂直边的边距
|
* 与UMSocialWarterMarkPositon的停靠位置有关,
|
如:为UMSocialImageWarterMarkBottomRight时,paddingToHorizontalParentBorder代表与父窗口的下边间隙.
|
如:UMSocialImageWarterMarkTopLeft时,paddingToHorizontalParentBorder代表与父窗口的上边间隙.
|
*/
|
@property(nonatomic,readwrite,assign)CGFloat paddingToVerticalParentBorder;//靠近垂直边的边距
|
|
@property(nonatomic,readonly,assign)CGAffineTransform warterMarkImageTransform;//水印图片的矩阵
|
|
@end
|