获取CGContextRef的几种方法

本文介绍了在iOS开发中获取CGContextRef的两种常见方法:一是通过继承UIView并重写drawRect方法,二是从已创建的CALayer获取其Context。详细步骤和参考资料链接已提供。
摘要由CSDN通过智能技术生成

1.继承UIView,重写drawRect方法

CGContextRef ctx = UIGraphicsGetCurrentContext();

2.根据创建好的CALayer获取当前Layer的Context

- (CGContextRef) MyCreateBitmapContext:(CALayer*)layer
{
    int pixelsWide = layer.bounds.size.width;
    int pixelsHigh = layer.bounds.size.height;
    CGContextRef    context = NULL;
    int             bitmapByteCount;
    int             bitmapBytesPerRow;
    
    bitmapBytesPerRow   = (pixelsWide * 4);// 1
    bitmapByteCount     = (bitmapBytesPerRow * pixelsHigh);
    
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    context = CGBitmapContextCreate (NULL,// 4
                                     pixelsWide,
                                     pixelsHigh,
                                     8,      // bits per component
                                     bitmapBytesPerRow,
                                     colorSpace,
                                     kCGImageAlphaPremultipliedLast);
    if (context== NULL)
    {
        return NULL;
    }
    CGColorSpaceRelease( colorSpace );// 6
    
    return context;// 7
}

可供扩展:

http://www.cocoabuilder.com/archive/cocoa/218456-drawing-an-nsimage-in-calayer.html

http://www.cocoachina.com/bbs/read.php?tid-43635.html

http://www.freeboxgame.com/freebox/technologyCampQuestion.aspx?questionid=56

http://www.cocoachina.com/bbs/m/read.php?tid=51704#read

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值