2011-12-26 10 views
8

Ok usando coregraphics, estoy construyendo una imagen que luego será utilizada en una operación CGContextClipToMask. Se ve algo como lo siguiente:¿Cómo obtener un CGImageRef a partir de imágenes dibujadas por contexto?

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(); 

Ahora, como se puede ver por el comentario, me pregunto cómo estoy realmente va a utilizar la imagen que yo he construido. La razón por la que estoy usando gráficos centrales aquí y no solo por construir un UIImage es porque la transparencia que estoy creando es muy importante. Si solo tomo un UIImage del contexto, cuando se usa como máscara, se aplicará a todo ... Además, ¿tendré algún problema al utilizar una máscara parcialmente transparente con este método?

+0

posible duplicado de [Dibujo en CGImageRef] (http://stackoverflow.com/questions/4257043/drawing-into-cgimageref) –

Respuesta

12
CGImageRef result = CGBitmapContextCreateImage(UIGraphicsGetCurrentContext()); 
Cuestiones relacionadas