2

生データを取得UIImageし、iPhone で a のアルファ値を編集すると、奇妙な結果が生成されるという問題が発生しています。タッチしたピクセルの色がすべて黒でない場合、フル アルファのようには見えません。結果は次のとおりです。

変更なしで開始

未修正

グレーに触れると、すべてのグレーがアルファ = 0 に変わります

触れた

そして、おそらくアルファ 0 である奇妙なしっくい領域に触れると、技術的には完全に黒であるすべてのピクセルがアルファ 0 に変わります。

//リンクがありません。十分な担当者がいません//

誰が何が起こっているのか手がかりを持っていますか? あらかじめ乗算されたアルファと関係がありますか?または、値を編集している方法かもしれません。コードを確認する必要がある場合は、お知らせください。編集します。

追加のメモとして、しっくい領域を押すと 2 回目の灰色の領域は、アルファが 0 になる代わりに、他のすべての値が 0 に等しくなります。

4

1 に答える 1

1

そうです、実験、試行錯誤、せん断運を通じて、問題の解決策を発見しました。理由はわかりませんが、これで修正されました。

生データを取得するとき、この関数を使用してコンテキスト内のビットマップ情報を取得します

CGBitmapInfo imageInfo = CGImageGetBitmapInfo(imageRef);

同じ変数を使用して、編集された生データから CGImage を作成していました。そして狂気

それを修正する方法は、生データからの作成時に「imageInfo」を使用する代わりに、フラグを使用することkCGImageAlphaLastです。

修正されましたが、理由はわかりません。

于 2012-07-12T04:05:48.707 に答える