この方法で BMP イメージをロードすると、次のようになります。
NSData * pImageData = [[NSData alloc] initWithBytesNoCopy:pBuffer length:dwSize freeWhenDone:NO];
UIImage * pLoaded = [[UIImage alloc] initWithData:pImageData];
[pImageData release];
その画像を Quartz2D で表示してみます:
CGImageRef cgImage = [pLoaded CGImage];
CGContextSaveGState(context);
CGContextTranslateCTM(context, x, y*2 + h);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextDrawImage(context, CGRectMake(x, y, w, h), cgImage);
CGContextRestoreGState(context);
画像が黒い四角形として表示されるか、表示されても完全に表示されないことがあります。initWithData の後に 1 秒間スリープすると、画像が正しく表示されます。
画像の初期化が完了するのを待つ UIKit/Quartz2D API メソッドはありますか?