图片水印(微博图片上面的个人签名)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图片水印(微博图片上面的个人签名)相关的知识,希望对你有一定的参考价值。

技术分享

- (void)viewDidLoad

{

    [super viewDidLoad];

    

    // 1.返回水印图片

    UIImage *newImage = [UIImage waterImageWithBg:@"scene" logo:@"logo"];

    

    // 2.显示图片

    self.iconView.image = newImage;

}

 

- (void)testWater

{

    UIImage *bgImage = [UIImage imageNamed:@"scene"];

    

    // 上小文 : 基于位图(bitmap) ,  所有的东西需要绘制到一张新的图片上去

    

    // 1.创建一个基于位图的上下文(开启一个基于位图的上下文)

    // size : 新图片的尺寸

    // opaque : YES : 不透明,  NO : 透明

    // 这行代码过后.就相当于常见一张新的bitmap,也就是新的UIImage对象

    UIGraphicsBeginImageContextWithOptions(bgImage.size, NO, 0.0);

    

    // 2.画背景

    [bgImage drawInRect:CGRectMake(0, 0, bgImage.size.width, bgImage.size.height)];

    

    // 3.画右下角的水印

    UIImage *waterImage = [UIImage imageNamed:@"logo"];

    CGFloat scale = 0.2;

    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)];

    

    // 4.从上下文中取得制作完毕的UIImage对象

    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

    

    // 5.结束上下文

    UIGraphicsEndImageContext();

    

    // 6.显示到UIImageView

    self.iconView.image = newImage;

    

    // 7.将image对象压缩为PNG格式的二进制数据

    NSData *data = UIImagePNGRepresentation(newImage);

    //    UIImageJPEGRepresentation(<#UIImage *image#>, <#CGFloat compressionQuality#>)

    

    // 8.写入文件

    NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"new.png"];

    [data writeToFile:path atomically:YES];

    

}

给image添加一类目   

/**

 *  打水印

 *返回带有水印的图片

 *  @param bg   背景图片

 *  @param logo 右下角的水印图片

 */

+ (instancetype)waterImageWithBg:(NSString *)bg logo:(NSString *)logo

{

    UIImage *bgImage = [UIImage imageNamed:bg];

    

    // 1.创建一个基于位图的上下文(开启一个基于位图的上下文)

    UIGraphicsBeginImageContextWithOptions(bgImage.size, NO, 0.0);

    

    // 2.画背景

    [bgImage drawInRect:CGRectMake(0, 0, bgImage.size.width, bgImage.size.height)];

    

    // 3.画右下角的水印

    UIImage *waterImage = [UIImage imageNamed:logo];

    CGFloat scale = 0.2;

    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)];

    

    // 4.从上下文中取得制作完毕的UIImage对象

    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

    

    // 5.结束上下文

    UIGraphicsEndImageContext();

    

    return newImage;

}

以上是关于图片水印(微博图片上面的个人签名)的主要内容,如果未能解决你的问题,请参考以下文章

用Java实现给图片添加文字

阿里巴巴上传图片的时候有加水印的选项点选了,现在想去掉水印怎么弄?原图删除了。

图片怎么加水印呢?

通过学习制作长微博工具来了解水印的制作,及EditText中的内容在图片中换行显示

手机上怎么制作图片的水印

python OpenCV给视频去除水印