Как найти границу изображения с помощью растрового изображения в C#?

Я хочу создать границу изображения с помощью растрового изображения, но какой-то пиксель остается на границе рисования.

Образ

Dataatable Data

GetImageDataId  PixelName   PixelA  PixelR  PixelG  PixelB  PixelXCordinate PixelYCordinate 
1                ffbcbcbc   255      188     188     188         0           0               
2                ffb5b5b5   255      181     181     181         0           1              
3                ffb7b7b7   255      183     183     183         0           2  
4                ffb7b7b7   255      183     183     183         0           3  
5                ffb7b7b7   255      183     183     183         0           4  

Код

if (dt1.Rows.Count > 0)
{
    int p = 2;
    progressBar1.Visible = true;
    for (int r = dt1.Rows.Count - 1; r >= 1; r--)
    {
        if (dt1.Rows[r]["PixelName"].ToString() == "ffb7b7b7")
        {
            //  DataTable dtf = dt1.Select("PixelYCordinate='" + r + "'AND PixelXCordinate ='" + Convert.ToInt32(r - 1) + "'").CopyToDataTable();
            //  DataTable dtp = dt1.Select("PixelXCordinate='" + r + "'AND PixelYCordinate ='" + Convert.ToInt32(r - 1) + "'").CopyToDataTable();

            if (dt1.Rows[r]["PixelName"].ToString() == dt1.Rows[r - 1]["PixelName"].ToString() && dt1.Rows[r]["PixelName"].ToString() == "ffb7b7b7")
            {

            }
            else if (dt1.Rows[r]["PixelName"].ToString() == "ffb7b7b7")
            {

                for (int k = 0; k < p; k++)
                {
                    b.SetPixel(Convert.ToInt32(dt1.Rows[r]["PixelXCordinate"]), Convert.ToInt32(dt1.Rows[r - k]["PixelYCordinate"]), Color.FromArgb(255, 255, 0, 0));
                    pictureBox1.Image = b;
                }

            }
            r = r - p - 1;

        }
}

0 ответов

Другие вопросы по тегам