Ответ 1
Я думаю, что лучше масштабировать (перемасштабировать) изображение, а не изображение. Взгляните на эту статью - http://www.codeproject.com/Articles/21097/PictureBox-Zoom
И
Есть ли простой и функциональный способ масштабирования изображения в окне изображения, включая полосы прокрутки?
В настоящий момент я использую окно с изображением на панели с автоматическим прокруткой. Чтобы увеличить масштаб, я увеличиваю изображение и перемещаю его с помощью полос прокрутки на панели. Проблема в том, что она ведет себя странно. Например: если вы приближаетесь к дальнему, граница между верхней и левой границей формы и изображением становится все больше и больше.
Это метод масштабирования. Я получил его от здесь.
private void ZoomInOut(bool zoom)
{
//Zoom ratio by which the images will be zoomed by default
int zoomRatio = 10;
//Set the zoomed width and height
int widthZoom = pictureBox_viewer.Width * zoomRatio / 100;
int heightZoom = pictureBox_viewer.Height * zoomRatio / 100;
//zoom = true --> zoom in
//zoom = false --> zoom out
if (!zoom)
{
widthZoom *= -1;
heightZoom *= -1;
}
//Add the width and height to the picture box dimensions
pictureBox_viewer.Width += widthZoom;
pictureBox_viewer.Height += heightZoom;
}
Любая помощь приветствуется.
Спасибо заранее.
Marco
EDIT:
Два снимка экрана без увеличения и увеличения (16 раз).
Обратите внимание на границу между верхней границей изображения и верхней границей формы.
Я думаю, что лучше масштабировать (перемасштабировать) изображение, а не изображение. Взгляните на эту статью - http://www.codeproject.com/Articles/21097/PictureBox-Zoom
И
Я использую Graphics.Transform для реализации этой функции. https://github.com/sylarfan/InteractivePictureBox