Я хочу реализовать масштабирование для изображения. Я не хочу изменять размер PictureBox, но само изображение.
Как мне это сделать?
Ответ 1
Одно из решений:
Создайте новое изображение желаемого размера (например, 200% или 50% от исходного размера изображения)
Нарисуйте исходное изображение на новое изображение, используя Graphics.DrawImage(Изображение, Прямоугольник);, который рисует данное изображение на новое изображение на заданная позиция с заданным размером
Установите новое изображение в качестве источника для PictureBox
Другим способом является создание нового экземпляра такого растрового изображения:
Size newSize = new Size((int)(originalBitmap.Width * zoomFactor), (int)(originalBitmap.Height * zoomFactor));
Bitmap bmp = new Bitmap(originalBitmap, newSize);
Ответ 2
Я использовал веб-браузер для достижения этой цели.
//loads the image
myWebBrowser.Navigate(@"C:\myimage.png");
Оттуда я использовал SendKeys, чтобы увеличивать и уменьшать масштаб
myWebBrowser.Select(); //Selects browser.
SendKeys.Send("^{+}"); //Sends the control + key combo, causing the browser to zoom in. Replace the "+" with a "-" to zoom out.
Это немного странный метод, но он работал очень хорошо для меня. Я надеюсь, что вы найдете это полезным!