با درود
برای طراحی برنامه مشابه سطل رنگ ویندوز از کد زیر کمک گرفتم اما موقع اجرا سیستم هنگ میکنه... کلی هم تو نت گشتم اما متاسفانه مشکل حل نشده , و نظرات بیشتر جنبه راهنمایی دارند تا راه حل.
از اساتید اگر علت رو تشخیص دادند لطف کنند راهنمایی بفرمایند و یا اگر کد سی شارپ مشابه برای سطل رنگ میشناسید لطفا اطلاع دهید.تو همین سایت هم بعضی از دوستان دیگه هم با این کد مشکل داشتند و کلا راه حلی پیدا نشد!
بعد از کلیک روی آیکون سطل رنگ که یک picture box هست طبق کد زیر آرگومان ها به تابع fill ارسال میشه وبا فراخوانی تابع fill و در واقع کلیک بر روی قسمتهای انتخابی جهت رنگ شدن اتفاق خاصی نمیوفته و برنامه هنگ میکنه.
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
if (act == "color")
{
fill(bmp, e.X, e.Y, bmp.GetPixel(e.X, e.Y));
pictureBox1.Image = bmp;
}
=============
private void fill(Bitmap picture, int x, int y, Color bcolor)
{
if (x > 0 && x < picture.Width && y > 0 && y < picture.Height)
{
Point p = new Point(x, y);
Stack<Point> s = new Stack<Point>();
s.Push(p);
while (s.Count != 0)
{
p = s.Pop();
Color currentcolor = picture.GetPixel(p.X, p.Y);
if (currentcolor == bcolor)
{
picture.SetPixel(p.X, p.Y, currentcolor);
s.Push(new Point(p.X - 1, p.Y));
s.Push(new Point(p.X + 1, p.Y));
s.Push(new Point(p.X, p.Y - 1));
s.Push(new Point(p.X, p.Y + 1));
}
}
}
}