c#では、以下のようにビットマップイメージ内のポリゴンを塗りつぶすことができます。C#ポリゴンの内側に埋め込む
using (Graphics g = Graphics.FromImage(bitmap))
{
g.FillPolygon(colorBrush, points.ToArray());
}
FillPolygon
方法は、この場合には、白画素と黒画素が同じままで、ポリゴン内の画素を埋めます。
今、私はこの操作のちょうど反対を望みます。つまり、外側のピクセルが塗りつぶされ、内側のピクセルは同じままになります。この場合、黒のピクセルは外のピクセルです。
編集 私はオブジェクトのバイナリイメージを持っているとします。背景色(黒)でピクセルをクリップする必要があり、白いポリゴンの内側のピクセルは変更されません。
2パス操作を実行できます。最初のパスを意味する、このビットマップを作成します。第2パス:生成されたビットマップ内のピクセルが黒であるとき、他のビットマップのピクセルを埋める。 –
白い背景を使用し、ポリゴンを黒く塗りつぶすのに間違っていますか? – Piglet
私はそれを試したことはありませんが、ポリゴンポイントにビットマップの角を含めることができます。それが動作すれば、ポリゴン内のすべてのものが外に出るようになり、同じ結果が得られます。 – Abion47