设为首页 加入收藏

TOP

iOS 学习 - 15.添加水印
2017-10-13 10:33:10 】 浏览:4579
Tags:iOS 学习 15. 添加 水印

绘制到位图

下面利用位图图形上下文给一个图片添加水印,在下面的程序中我们首先创建上下文,然后在上下文中绘制图片、直线和文本,最后从当前位图上下文中取得最终形成的新图片显示到界面

- (void)viewDidLoad {
    [super viewDidLoad];
    
    UIImage *image = [self drawImageAtImageContext];
    UIImageView *imageView = [[UIImageView alloc]initWithImage:image];
    imageView.center = CGPointMake(160, 282);
    [self.view addSubview:imageView];
    
}
//添加水印
-(UIImage *)drawImageAtImageContext{
    //获得一个位图图形上下文
    CGSize size = CGSizeMake(300, 188);//画布大小
    
    UIGraphicsBeginImageContext(size);
    
    UIImage *image = [UIImage imageNamed:@"frame_shop_lovely_bg@2x.jpg"];
    //注意绘图的位置是相对于画布顶点而言,不是屏幕
    [image drawInRect:CGRectMake(0, 0, 300, 188)];
    //添加水印
    CGContextRef ref = UIGraphicsGetCurrentContext();
    //字符的长度和 font
    UIFont *font = [UIFont systemFontOfSize:15];
    NSString *str = @"大金毛";
    int strLength = str.length *font.pointSize;
    //两点确定一条直线
    //下划线的长度等于字符长度
    CGContextMoveToPoint(ref, 200, 178);
    CGContextAddLineToPoint(ref, strLength + 200, 178);
    //直线的颜色、宽度
    [[UIColor redColor]setStroke];
    CGContextSetLineWidth(ref, 2);
    //绘制图像到指定图形上下文,只有边框
    CGContextDrawPath(ref, kCGPathStroke);
    //字符的位置
    [str drawInRect:CGRectMake(200, 158, 100, 30) withAttributes:@{NSFontAttributeName:font,NSForegroundColorAttributeName:[UIColor redColor]}];
    //返回绘制的新图形
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    //最后一定不要忘了关闭上下文
    UIGraphicsEndImageContext();
    
    return newImage;
}

来自KenshinCui

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇说说anchorPoint 下一篇找window的三种方法

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目