zoukankan      html  css  js  c++  java
  • iOS 学习

    绘制到位图

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

    - (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

  • 相关阅读:
    外感上吐下泻案
    口唇口腔紅肿案
    柴胡桂枝汤---刘渡舟
    肺结核病人外感咳嗽不止案
    下肢麻木案
    老年人全身皮肤瘙痒案
    眩晕案
    頑固头痛失眠案
    PHP 点阵5*7字体
    PHP workerMan tcp与webSocket 透传互通
  • 原文地址:https://www.cnblogs.com/asamu/p/5501520.html
Copyright © 2011-2022 走看看