// // UMSocialWarterMarkConfig.h // testWatermarkImage // // Created by 张军华 on 16/12/23. // Copyright © 2016年 张军华. All rights reserved. // #import #import #import @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 /** * 默认配置类 * * @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 /** * 默认配置类 * * @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 /** * 默认配置类 * * @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