2011-12-26 20 views
8

Dobrze, używając grafiki, buduję obraz, który będzie później używany w operacji CGContextClipToMask. To wygląda mniej więcej tak:Jak uzyskać obraz CGImageRef z obrazów kontekstowych?

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

Teraz, jak widać po komentarzu, zastanawiam się, jak ja faktycznie zamiar użyć obrazu I został zbudowany w górę. Powodem, dla którego używam tutaj głównej grafiki, a nie tylko tworzeniem UIImage, jest to, że przezroczystość, którą tworzę, jest bardzo ważna. Jeśli po prostu pobieram UIImage z kontekstu, gdy jest on używany jako maska, będzie on dotyczył wszystkiego ... Co więcej, czy będę miał problemy z używaniem częściowo przezroczystej maski przy użyciu tej metody?

+0

możliwy duplikat [Rysowanie w CGImageRef] (http://stackoverflow.com/questions/4257043/drawing-into-cgimageref) –

Odpowiedz

12
CGImageRef result = CGBitmapContextCreateImage(UIGraphicsGetCurrentContext()); 
Powiązane problemy