Как выйти из цикла при проверки пикселей картинки? - C#
Формулировка задачи:
Основной код:
В папке несколько картинок. Берём первую, ищем нужный цвет, при обнаружении картинку удаляем. Если прошли картинку, а нужный цвет не нашли, софт останавливается.
Как сделать, что бы брал следующую картинку?
Пробовал флаг вешать, через отрицание того что ищем - не помогает.
Листинг программы
- private void main()
- {
- string odnakr = null;
- try
- {
- re:
- lock (spisok)
- {
- if (spisok.Count == 0)
- {
- BeginInvoke(new Action(() => MessageBox.Show("ГОТОВО!", "СООБЩЕНИЕ", MessageBoxButtons.OK, MessageBoxIcon.Information)));
- return;
- }
- else
- {
- odnakr = spisok.First();
- schetchik--;
- spisok.Remove(odnakr);
- }
- }
- Bitmap image = new Bitmap(odnakr); //Bitmap для открываемого изображения
- this.pictureBox1.Size = image.Size;
- pictureBox1.Image = image;
- pictureBox1.Invalidate();
- int x, y;
- for (x = 0; x < image.Width; x++)
- {
- for (y = 0; y < image.Height; y++)
- {
- Color c = image.GetPixel(x, y);
- label3.Text = odnakr;
- if (c == Color.FromArgb(239, 65, 54))
- {
- image.Dispose();
- File.Delete(odnakr);
- goto re;
- }
- }
- }
- }
- catch (Exception e)
- {
- BeginInvoke(new Action(() => MessageBox.Show(e.Message, "СООБЩЕНИЕ", MessageBoxButtons.OK, MessageBoxIcon.Information)));
- }
- }
Решение задачи: «Как выйти из цикла при проверки пикселей картинки?»
textual
Листинг программы
- private void Form1_Load(object sender, EventArgs e)
- {
- MySuperUberMethod(@"C:\!WORK\JPG");
- }
- private void MySuperUberMethod(string dir)
- {
- if (!Directory.Exists(dir))
- return;
- IEnumerable<string> files = Directory.EnumerateFiles(dir, "*.png");
- foreach (string file in files)
- {
- Bitmap bmp = new Bitmap(file);
- bool handled = false;
- for (int x = 0; x < bmp.Width; x++)
- {
- for (int y = 0; y < bmp.Height; y++)
- {
- if (bmp.GetPixel(x, y) == Color.FromArgb(255, 31, 0))
- {
- MessageBox.Show(file);
- handled = true;
- break;
- }
- }
- if (handled)
- break;
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д