2011-12-26 26 views
8

Ok bằng cách sử dụng đồ họa cốt lõi, tôi đang xây dựng một hình ảnh mà sau này sẽ được sử dụng trong hoạt động CGContextClipToMask. Có vẻ như sau:Làm thế nào để có được một CGImageRef từ các hình ảnh được vẽ theo ngữ cảnh?

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

Bây giờ, như bạn có thể thấy bằng nhận xét, tôi tự hỏi làm cách nào tôi sẽ sử dụng hình ảnh tôi đã tạo. Lý do tại sao tôi đang sử dụng đồ họa cốt lõi ở đây và không chỉ xây dựng một UIImage là sự minh bạch tôi đang tạo ra là rất quan trọng. Nếu tôi chỉ lấy một UIImage từ bối cảnh, khi nó được sử dụng như một mặt nạ, nó sẽ chỉ áp dụng cho tất cả mọi thứ ... Hơn nữa, tôi sẽ có bất kỳ vấn đề bằng cách sử dụng một mặt nạ một phần trong suốt bằng cách sử dụng phương pháp này?

+0

bản sao có thể có của [Vẽ thành CGImageRef] (http://stackoverflow.com/questions/4257043/drawing-into-cgimageref) –

Trả lời

12
CGImageRef result = CGBitmapContextCreateImage(UIGraphicsGetCurrentContext()); 
Các vấn đề liên quan