2011-02-24 58 views
1

我想創建一個拼圖遊戲,我需要掩蓋UIImages以獲取拼圖碎片。iPhone - UIImage掩碼和CopyImageAndAddAlphaChannel函數

我不明白我該如何屏蔽JPG圖片,因爲據我所知它沒有alpha通道。誰能幫我這個? 這些JPG文件位於在線服務器上,無法將它們作爲PNG下載。

還有一件事,我無法在Apple文檔的任何位置找到此功能: 「CopyImageAndAddAlphaChannel」。它是否存在?我在一些論壇上發現了一些參考文獻,但沒有任何進展。

非常感謝, 安德烈

回答

1

找到了答案。這裏是功能,它適用於JPG和PNG沒有alpha通道(我已經測試:) :):

CGImageRef imageRef = self.CGImage; 
size_t width = CGImageGetWidth(imageRef); 
size_t height = CGImageGetHeight(imageRef); 


CGContextRef offscreenContext = CGBitmapContextCreate(NULL, 
                 width, 
                 height, 
                 8, 
                 0, 
                 CGImageGetColorSpace(imageRef), 
                 kCGBitmapByteOrderDefault | kCGImageAlphaPremultipliedFirst); 


CGContextDrawImage(offscreenContext, CGRectMake(0, 0, width, height), imageRef); 
CGImageRef imageRefWithAlpha = CGBitmapContextCreateImage(offscreenContext); 
UIImage *imageWithAlpha = [UIImage imageWithCGImage:imageRefWithAlpha]; 


CGContextRelease(offscreenContext); 
CGImageRelease(imageRefWithAlpha); 

return imageWithAlpha; 
+0

感謝分享代碼,但這只是添加一個空白的alpha通道?尋找將採取獨立的形象和阿爾法並結合他們的東西。也許我需要看看CGImageMaskCreate? – ayreguitar 2012-06-08 08:14:01