如何从上下文绘制的图像中获取CGImageRef?

时间:2011-12-26 16:57:10

标签: ios cocoa-touch uikit core-graphics mask

好的使用coregraphics,我正在构建一个稍后将用于CGContextClipToMask操作的图像。它看起来像下面这样:

    UIImage *eyes = [UIImage imageNamed:@"eyes"];
    UIImage *mouth = [UIImage imageNamed:@"mouth"];

    UIGraphicsBeginImageContext(CGSizeMake(150, 150));
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetRGBFillColor(context, 0, 0, 0, 1);
    CGContextFillRect(context, bounds);
    [eyes drawInRect:bounds blendMode:kCGBlendModeMultiply alpha:1];
    [mouth drawInRect:bounds blendMode:kCGBlendModeMultiply alpha:1];

    // how can i now get a CGImageRef here to use in a masking operation?

    UIGraphicsEndImageContext();

现在,正如你在评论中看到的那样,我想知道我是如何实际使用我建立的图像的。我在这里使用核心图形而不仅仅是构建UIImage的原因是我正在创建的透明度非常重要。如果我只是从上下文中获取UIImage,当它被用作掩码时,它将仅适用于所有内容......更重要的是,使用此方法使用部分透明蒙版会有任何问题吗?

2 个答案:

答案 0 :(得分:14)

CGImageRef result = CGBitmapContextCreateImage(UIGraphicsGetCurrentContext());

答案 1 :(得分:3)

你可以调用the UIGraphicsGetImageFromCurrentImageContext function,它将返回一个UIImage对象。您可以保留并使用UIImage,或者询问它的CGImage。