iOS 图片加水印

为图片添加水印文字, 需要先获取图片的图形上下文. 将文字绘制到图形的上下文中, 再根据当前的图形上下文生成一张新的图片返回.

//0.加载图片
UIImage *image = [UIImage imageNamed:@"阿狸头像"];
//1.开启一个跟图片原始大小一样的上下文
//opaque: 不透明
/**
 *  开启一个图形上下文
 *
 *  @param size#>   开启的图形上下文的大小 description#>
 *  @param opaque#> 是否不透明 yes不透明 no透明 description#>
 *  @param scale#>  分辨率 如果是0则和屏幕分辨率一致 description#>
 *
 *  @return 生成的图片
 */
//UIGraphicsBeginImageContextWithOptions(<#CGSize size#>, <#BOOL opaque#>, <#CGFloat scale#>)
UIGraphicsBeginImageContextWithOptions(image.size, YES, 0);
//2.把图片绘制到上下文当中
[image drawAtPoint:CGPointZero];
//3.把文字绘制到上下文当中
NSString *str = @"pipi";
[str drawAtPoint:CGPointMake(10, 20) withAttributes:nil];
//4.从上下文当中生成一张图片
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
//5.关闭上下文
UIGraphicsEndImageContext();

self.imgV.image = newImage;

根据一个View生成图片

UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, [UIScreen mainScreen].scale);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image=UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;

上下文的矩阵操作

//平移操作
CGContextTranslateCTM(ctx, 100, 100);
//旋转
CGContextRotateCTM(ctx, M_PI_4);
//缩放
CGContextScaleCTM(ctx, 1.5, 1.5);

擦除指定区域

CGContextClearRect(ctx, rect);

对上下文进行裁剪

    [clipPath addClip];

保存恢复/上下文状态 以栈的形式保存和恢复

CGContextSaveGState(ctx);
CGContextRestoreGState(ctx);

CADisplayLink

CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(changeY)];
//想要让CADisplayLink 让它工作, 必须得要把它添加到主运行循环当中,
//当每一次屏幕刷新的时候就会调用指定的方法(屏幕每一秒刷新60次)
[link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在一些应用如微博中,为了防止用户图片被盗用,一般会在图片上加上水印,接下来就给大家分享一个iOS中给图片加水印的简...
    f94bd4cac294阅读 8,103评论 5 7
  • 1.加文字 2.加图片 [IOS:UIImage的剪切,尺寸缩小、压缩、添加水印],(http://blog.cs...
    BernardChina阅读 11,569评论 0 15
  • Quartz2D 简介 Quartz2D是二维(平面)的绘图引擎(经包装的函数库,方便开发者使用。也就是说苹果帮我...
    iOS_Cqlee阅读 3,783评论 0 2
  • Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎。它提供了低...
    ShanJiJi阅读 5,556评论 0 20
  • 文/苟仙女 图/苟仙女 我喜欢一个人就像一场火 在凄冷的黑夜被一颗火星点燃 在安静的酒馆焚身 把自己燃烧 我喜...
    林云空阅读 2,615评论 0 10

友情链接更多精彩内容