cocoa绘画中文

绘画中文:

Quartz中CGContextShowTextAtPoint不支持中文,用以下方式绘画

    NSGraphicsContext *gc = [NSGraphicsContext graphicsContextWithGraphicsPort:context flipped:NO];

        [NSGraphicsContext setCurrentContext:gc];

        [gc flushGraphics];

        [strtext drawAtPoint:origin withAttributes:nil];

        [NSGraphicsContext restoreGraphicsState];



以下是将字符串内容转换为矢量路径图形

- (NSBezierPath *) makePathFromString: (NSString *) string
                              forFont: (NSFont *) font
{
    NSTextView *textview;
    textview = [[NSTextView allocinit];
        
    [textview setString: string];
    [textview setFont: font];
        
    NSLayoutManager *layoutManager;
    layoutManager = [textview layoutManager];
        
    NSRange range;
    range = [layoutManager glyphRangeForCharacterRange:
                      NSMakeRange (0, [string length])
                                                         actualCharacterRangeNULL];
    NSGlyph *glyphs;
    glyphs = (NSGlyph *) malloc (sizeof(NSGlyph)
                                 * (range.length * 2));
    [layoutManager getGlyphs: glyphs range: range];
        
    NSBezierPath *path;
    path = [NSBezierPath bezierPath];
        
    [path moveToPointNSMakePoint (20.020.0)];
    [path appendBezierPathWithGlyphs: glyphs
                                                    count: range.length inFont: font];
        
    free (glyphs);
    [textview release];
        
    return (path);
        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值