0

wpf 3d でコーンのアルファチャンネルを設定するためにビットマップを使用できるかどうか疑問に思っています:

黒 = > アルファ = 0 %

white => alpha = 100 % (内側のアルファの違いを見るには、おそらく 80 % ...)

代替テキスト http://www.visualdmx.fr/bitmap_alpha.png

4

1 に答える 1

0

WPF には、このための組み込みメカニズムがありません。最も簡単な方法は次のとおりだと思います。

  1. Lie Ryan が言及した potrace などのトレーシング ライブラリを使用して、ビットマップをジオメトリに変換します。
  2. GetFlattenedPathGeometry() を使用してジオメトリをポリラインに単純化します
  3. 結果のジオメトリの各線分を (x,y,0) から (0,0,z) までの 3D 三角形に変換します。ここで、"z" は円錐の高さです。
  4. MeshGeometry3D の Positions と TriangleIndices を構築し、その Material を必要な不透明度を持つ SolidColorBrush に設定します。

手順 2 ~ 4 はすべて非常に簡単です。ステップ 1 は、適切なサードパーティのビットマップ トレース ライブラリを選択し、C# から呼び出すために必要な P/Invoke または COM Interop を特定するという観点からは難しい場合があります。BitmapSource.CopyPixels を使用してライブラリに渡すビットを取得し、開いている StreamGeometry (StreamGeometry.Open) を描画して結果から Geometry を構築します。

于 2010-06-15T08:23:47.577 に答える