1

WinRT での画像のマスキングに問題があります。基本的には、ベース画像からパズルの形を切り取っていきます。私はパズルの形をPNGの白黒画像として持っています。形自体は白で背景は黒で、パズルのピースの透明な形でもあります。これは実際には iOS アプリのポートであり、CGContextClipToMask を白黒のマスクと共に使用してパズルのピースを切り取っています。WriteableBitmapEx の Blit を使用して画像をマスクしようとしましたが、望んでいた結果が得られませんでした。最も近いのは正しく切り取られた形状でしたが、何もないのではなく黒い背景がありました。この形の正しい切り方は?すべての答えをありがとう!

4

2 に答える 2

2

OpacityMask実際、Windows 8 の WinRT/XAML には、他の XAML フレームワークの実装がありません。を使用してピクセルを操作できますがWriteableBitmap、特に ARM デバイスでは少し遅くなります。より高速なソリューションは、FillOpacityMaskメソッドが組み込まれている Direct2D を使用することです。SharpDX は .NET 用に適切にラップするため、C# でも同様に実行できます。

于 2013-03-29T14:45:04.327 に答える
1

コードはありませんが、最も簡単なケースは、Photoshop/GIMP/任意のオンライン透明ツールで PNG ファイルを開き、黒いピクセルのアルファをゼロにマップすることです。

もう 1 つの例は、コードで直接実行することです。WriteableBitmapEx には各ピクセルを変更する関数があり、すべての黒いピクセルをループしてアルファを 0 に変更するだけです。

于 2013-03-29T14:28:30.377 に答える