好的,我想出了一個解決方案。感謝賈斯汀讓我有信心使用位圖上下文。最後,我使用的該位的代碼:
CGBitmapInfo bitmapInfo = kCGBitmapByteOrderDefault;
CFDataRef data = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, (UInt8*)screenBitmap, sizeof(UInt32)*256*192, kCFAllocatorNull);
CGDataProviderRef provider = CGDataProviderCreateWithCFData(data);
CGColorSpaceRef colourSpace = CGColorSpaceCreateDeviceRGB();
CGImageRef image = CGImageCreate(256, 192, 8, 32, sizeof(UInt32)*256, colourSpace, bitmapInfo, provider, 0, NO, kCGRenderingIntentDefault);
CGColorSpaceRelease(colourSpace);
CGDataProviderRelease(provider);
CFRelease(data);
self.image = [UIImage imageWithCGImage:image];
CGImageRelease(image);
還要注意的是screenBitmap是我的尺寸256×192的陣列UInt32的,自我是一個UIImageView派生的對象。這段代碼運行良好,但它是正確的做法嗎?
是的。如果你不需要CoreGraphics的繪圖功能,那就可以了,而且是完全正確的。 – 2010-11-28 07:39:50