Как получить CGImageRef из нарисованных контекстом изображений? - PullRequest
9 голосов
/ 26 декабря 2011

Хорошо, используя 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 ]

14 голосов
/ 26 декабря 2011
CGImageRef result = CGBitmapContextCreateImage(UIGraphicsGetCurrentContext());
3 голосов
/ 26 декабря 2011

Вы можете вызвать функцию UIGraphicsGetImageFromCurrentImageContext , которая вернет объект UIImage.Вы можете удерживать и использовать UIImage или запросить его CGImage.

...