0

C#/ WinRTを使用して、Windows Phone 8.1のWriteableBitmapにプログラムで透過性を追加することはできますか?WriteableBitmapをWindows Phone 8.1で透明にするC#WinRT Programmatically

画像のサイズ変更とブリッティングのために私のプロジェクトでWriteableBitmapExライブラリを参照しました。これは非常に便利で、透明度やアルファチャンネル/レイヤーの追加に役立つ可能性もありますが、

これを達成するためにWriteableBitmapExライブラリを使用せずにメソッドを作成する方が良いかもしれませんが、何が問題なのでしょうか...私はこれをしばらく検索してきましたが、基本的な解決策はあまりありません。

考えられるのは、ユーザーが画像やグラフィックを選択して開始画面に固定できるということです。アプリは背景色を透明にします(おそらく白または黒、または最初のX /画像の背景のY座標の色。

答えて

0

WriteableBitmapExで透明色を使用してみましたか?ビットマップ全体の使用をクリアする例:

writeableBitmap = new WriteableBitmap(200, 200, 96, 96, PixelFormats.Bgra32, null); 
writeableBitmap.Clear(Colors.Transparent); 
+0

画像全体が透明になります。私は特定の色だけ透明にしたい...背景色。 – theMaxx

0

あなたが特定のピクセルを自分で編集したい場合 - あなたはPixelBufferプロパティにアクセスする必要があります。私はWriteableBitmapExがそれをいつもしていると確信しています。それで私のツールキットはhereです。私は今ピクセルフォーマットを思い出すことができませんが、ARGBやP-ARGBのようだと思いますか?私はおそらくここで混乱している可能性がありますが、基本的にピクセルバッファは、各ピクセルが4バイトで定義されたピクセルのすべての行のデータを持つ配列です。したがって、2x2ビットマップはARGBARGBARGBARGBバイトのようになりますコンポーネント値(0〜255、色がない場合は0、すべてのRGBが白色の場合)。 Rは赤、Gは緑、Bは青、Aはアルファ - 不透明または透明です。 P-またはPremultiplied-ピクセル形式では、パフォーマンス上の理由から、RGB値のすべてにアルファチャンネル値がさらに乗算されます(IIRC)。

必要に応じて透明度を追加するために、すべてのピクセルをループしてARGB値を設定する必要があります。必要に応じて事前に掛け合わせずに事前乗算することも可能です。

関連する問題