Ошибка компилятора first более чем вероятна из-за неизвестной ссылки на InterpolationMode.HighQualityBicubic
.Перечисление InterpolationMode
находится в пространстве имен Drawing2D
, которое является дочерним пространством имен System.Drawing
.
. Эту ошибку можно исправить, добавив дополнительную директиву Using
для System.Drawing.Drawing2D
, илиПолностью определив пространство имен в вашем коде:
grap.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic;
Проблема second в вашем коде заключается в том, что изображение, которое вы указываете в качестве параметра для этого метода (img
) является нулевой ссылкой.Событие Scroll
вашего ползунка масштабирования, вероятно, вызывается, как только создается элемент управления (в конструкторе вашей формы), то есть до запуска кода в методе Load
вашей формы, который и создает изображение (с помощьюзагрузка из файла на диске).
Попробуйте добавить нулевую проверку в обработчик событий Scroll
:
private void zoomSlider_Scroll(object sender, EventArgs e)
{
if ((zoomSlider.Value > 0) && (imgOriginal != null))
{
picBox.Image = null;
picBox.Image = PictureBoxZoom(imgOriginal, new Size(zoomSlider.Value, zoomSlider.Value));
}
}
Наконец , я заметилчто вы устанавливаете свойство BackgroundImageLayout
в графическом блоке, но ни один код, который вы публикуете, не задает фоновое изображение для графического блока.Вы хотели установить свойство SizeMode
, чтобы настроить способ отображения изображения?Что-то вроде:
picBox.SizeMode = PictureBoxSizeMode.StretchImage;