• IOS图像处理(2)绘制文本


    IOS中可以通过CGContextShowTextAtPoint来绘制文字,但这个方法不支持中文字符,而且在ios7之后也不推荐使用

    我们可以通过NSString的drawAtPoint以及drawInRect实现更加简单的文字绘制

    - (void)drawRect:(CGRect)rect
    {
        //获取图像上下文对象
        CGContextRef context = UIGraphicsGetCurrentContext();
        CGContextSetRGBStrokeColor(context, 250/255.0, 250/255.0, 250/255.0, 1);
        CGContextSetFillColorWithColor(context, [UIColor greenColor].CGColor);
        CGContextSetShadowWithColor(context, CGSizeMake(1, 1), 3, [UIColor yellowColor].CGColor);
        
        
        //使用填充模式绘制文字
        CGContextSetTextDrawingMode(context,kCGTextFill);
        NSString *str = @"this is a jock";
        [str drawAtPoint:CGPointMake(20, 20) withAttributes:@{NSFontAttributeName:[
                                                                  UIFont fontWithName:@"Arial" size:30],NSForegroundColorAttributeName:[UIColor greenColor]}];
        
        //使用描边模式绘制文字
        CGContextSetTextDrawingMode(context, kCGTextStroke);
        [str drawAtPoint:CGPointMake(20, 70) withAttributes:@{NSFontAttributeName:[
                                                                                   UIFont fontWithName:@"Arial" size:30],NSForegroundColorAttributeName:[UIColor magentaColor]}];
        
        CGContextSetTextDrawingMode(context, kCGTextFillStroke);
        [str drawInRect:CGRectMake(20, 120, 100, 100) withAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"Arial" size:30],NSForegroundColorAttributeName:[UIColor redColor]}];
       
    }

    运行结果

  • 相关阅读:
    是河南大学的悲哀???
    装完manjaro先要卸载
    技术博客
    VIM从入门到中级教程
    HTTP中GET与POST的区别
    AngularJS 拦截器实现全局$http请求loading效果
    angular指令监听ng-repeat渲染完成后执行自定义事件方法
    icheck如何修改样式大小
    Sublime text3 代码格式化插件
    代理模式小试
  • 原文地址:https://www.cnblogs.com/zanglitao/p/4034956.html
Copyright © 2020-2023  润新知