Как выйти из цикла при проверки пикселей картинки? - 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; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д