6

私は無駄にあちこちを見回しました。スレッドで画像の読み込みを行っていますが、UIKit はスレッドセーフではないため、画像を CGImageRefs として保存する必要がありますが、これを行う方法がわかりません。私は以前にクォーツのもので遊んだことがないので、混乱しています. 基本的に、JPG をディスクから CGImageRef にロードするだけです。また、ボーナス ポイントとして、GIF を CGImageRef にロードする方法はありますか?

4

2 に答える 2

30

gcamp は多かれ少なかれ正しいです。これをバックグラウンド スレッドで使用してもかなり安全ですが、質問に答えるには、次のようにするとうまくいくと思います。

CGDataProviderRef dataProvider = CGDataProviderCreateWithFilename("file");
CGImageRef image = CGImageCreateWithPNGDataProvider(dataProvider, NULL, NO, kCGRenderingIntentDefault);

jpg画像用の機能もありますCGImageCreateWithJPEGDataProvider

(完了したら、必ずデータ プロバイダーとイメージをリリースしてください)

于 2010-08-23T18:45:28.347 に答える
9

最も簡単な方法は、UIKit を使用し、のCGImage妥当性を使用することだと思いますUIImage

そんな感じ :

UIImage* image = [UIImage imageNamed:@"Your Image.png"];
CGImageRef imageRef = image.CGImage;
于 2010-08-23T18:01:40.307 に答える