3

約 2 日間、2 つの UIImage をブレンドしようとしてきましたが、BAD_ACCESS エラーが発生しています。まず、同じ向きの 2 つの画像があります。基本的には CoreGraphics を使用してブレンドを行っています。

興味深いことに、コードを変更するたびに、初めてコンパイルしてデバイス上で実行するときに、何の問題もなくやりたいことをすべて実行できます。アプリケーションを再起動すると、エラーが発生し、プログラムがシャットダウンします。

誰か私に光をくれませんか?baseImage のサイズに動的にアクセスしようとしましたが、アクセスも悪くなります。

これが私がどのようにブレンディングを行っているかのスニペットです。

 UIGraphicsBeginImageContext(CGSizeMake(320, 480));
 CGContextRef context = UIGraphicsGetCurrentContext();

 CGContextTranslateCTM(context, 0, 480);
 CGContextScaleCTM(context, 1.0, -1.0);

 CGContextDrawImage(context, rect, [baseImage CGImage]);
 CGContextSetBlendMode(context, kCGBlendModeOverlay);
 CGContextDrawImage(context, rect, [tmpImage CGImage]);

 [transformationView setImage:UIGraphicsGetImageFromCurrentImageContext()];
 UIGraphicsEndImageContext();

補足: 場合によっては完全に機能することもありますが、問題ありません。単に重ねてブレンドしない場合もあります。その他、iPhoneがクラッシュします。

4

1 に答える 1

4

どうやら、主な問題は毎回同じ CGImage を編集することでした。それを取り除くために、私は使用しました

    CGImageCreateCopy(sourceImage.CGImage);

今のところ、クラッシュすることはもうありません。誰かがこれについてより良い説明をすることができれば、私は感謝します.

よろしく

于 2010-03-24T19:33:45.387 に答える