GetPixelを使用して、画像の各ピクセルの色を取得しています。画像にはさまざまな無地の不規則な形状が含まれているので、最大幅が最大高さと一致するポイント(またはピクセル)を見つけたいと思います(下の図を参照)。
(ソース:fuskbugg.se)
(境界線は無視してください)
これを使用して、キャプチャされたビットマップを反復処理しています。
for (int x = 0; x < bmp.Width; x++)
{
for (int y = 0; y < bmp.Height; y++)
{
Color clr = bmp.GetPixel(x, y);
// Hit
if (TestColour(clr)) // See if we're within the shape. I'm just comparing a bunch of colours here.
{
// Stuff I don't know
}
}
}
hashTableを使用して動作させることができましたが、これはひどい解決策であることを理解しています。私は、2つの整数(1つはX用、もう1つはY用)を増分して各反復の最大値を保存し、これを前の値と比較して、値が大きい場合は値を置き換えるという行で考えていました。
そのようにネストされたforループでそのアプローチをどのように使用できるかわかりません。
何か入力はありますか?