だから私はPNG画像を含むUIImageを持っています。その画像を NSData に変換してから UIImage に戻すと、画像は問題ありませんが、アルファが 0 のピクセルは RGB 値を失います。それらがゼロになる...それはなぜですか?とにかく私はそれらを保持することができますか?
コード セグメントは次のとおりです。
// Declare a new NSData
NSData test = new NSData();
// Convert my Image (PNG) to NSData
test = MyImageView.Image.AsPNG();
// Convert the NSData back to UIImage
UIImage workAroundImage = UIImage.LoadFromData(test);
MyImageView.Image = workAroundImage;
ピクセルを確認すると、アルファ値が 0 のピクセルは、元の値とは対照的に、RGB 値が 0,0,0 であることがわかります。どうしてこれなの?
これを示す例へのドロップボックス リンクを次に示します。このプロジェクトを実行すると、画像の一部のピクセルのアルファがゼロになります。RGB 値はそのまま残ります。これを確認するには、print ステートメントのコメントを外すことができます。次に、画面をタップすると (TouchesBegan 関数を参照)、UIImage を NSData に変換してから、UIImage に戻します。次に、すべてのピクセル データを再び画面に出力します。ここでは、RGBA データのすべてが 0,0,0,0 であり、アルファがゼロに設定されたインスタンスが RGB 値を保持していないことを示しています。どうしてこれなの?
https://www.dropbox.com/s/21d5k1yex475u2j/TestAlpha_WorkaroundIssue.zip