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