Я пытаюсь очистить PictureBox
в моем приложении Windows Form перед размещением изображения после его интерполяции.Я искал похожие ситуации, но такие вещи, как:
pictureBox1.Image=null;
pictureBox1.InitialImage=null;
pictureBox1.Invalidate();
pictureBox1.Dispose();
не работают ни в одной комбинации.Я использовал этот метод, чтобы открыть изображение и поместить его на PictureBox
:
void openImage()
{
DialogResult dr = openFileDialog1.ShowDialog();
if (dr == DialogResult.OK)
{
file = System.Drawing.Image.FromFile(openFileDialog1.FileName);
pictureBox1.Image = file;
opened = true;
}
}
. После этого изображение интерполируется с HighQualityBicubic
, но результат помещается поверх исходного изображения.Я использовал Zoom
свойство PictureBox
, чтобы оно не обрезало изображение и не закрывало остальную часть формы.
Есть ли способ удалить исходное изображение и увеличить результат в окне?
Метод интерполяции (виновная часть кода): void bicubic (int newHeight, int newWidth) {
Bitmap newImage = new Bitmap(file);
using (Graphics gr = Graphics.FromImage(newImage))
{
gr.InterpolationMode = InterpolationMode.HighQualityBicubic;
gr.PixelOffsetMode = PixelOffsetMode.HighQuality;
gr.DrawImage(newImage, 0, 0, newWidth, newHeight);
}
pictureBox1.Image.Dispose();
pictureBox1.Image = null;
pictureBox1.Refresh();
//pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.Image = newImage;
}