Member 13396929 Ответов: 1

Как удалить все данные изображения из winforms picturebox?


У меня есть программа, которая позволяет пользователю открыть изображение и измерить его, проведя по нему мышью. Изображение открывается в графическом окне при нажатии кнопки. Программа работает после открытия двух изображений, но не после открытия трех изображений. После третьего снимка измерения сильно завышены. Вот та часть моего кода, которая открывает изображение:
private void openPlan_Click(object sender, EventArgs e)// open plan folder
    {
        pictureBox1.Image = null;

        // open file dialog   
        OpenFileDialog open = new OpenFileDialog();
        open.InitialDirectory = @"C:\Users\Admin\Documents\complete Lumber Estimation Tool\Plans\";
        // image filters  
        if (open.ShowDialog() == DialogResult.OK)
        {

            trackBar1.Value = 4;
            zoom = 1.0F;
            imgOriginal = null;
            // display image in picture box  
            imgOriginal = new Bitmap(open.FileName);

            pictureBox1.Image = imgOriginal;
       }
  }

Является ли это главным образом проблемой с тем, как программа windows form хранит данные? Если да, то как мне убедиться, что программа не использует никаких данных или параметров из предыдущего изображения?

Что я уже пробовал:

Я пробовал изменять имя picturebox1.Изображение = нуль; на имя picturebox1.Изображения?.Dispose(); . я также попытался открыть изображение из потока и освободить переменную потока, применив stream?Располагать();

Dave Kreskowiak

Элемент управления PictureBox не сохраняет никаких данных о отображаемом изображении.

Проблема не в элементе управления PictureBox, а в другом месте вашего кода.

1 Ответов

Рейтинг:
1

OriginalGriff

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

Если вы не можете определить это, то вам нужно использовать отладчик, чтобы точно посмотреть, что происходит во время выполнения вашего кода - и мы не можем сделать это для вас вообще!