Как я могу увеличить и уменьшить изображение программно в C #? - PullRequest
2 голосов
/ 29 декабря 2010

Я бы хотел иметь возможность масштабировать (- / +) изображение, расположенное под панелью. Я бы хотел, чтобы увеличенная версия изображения отображалась на этой панели. Как я могу добиться этого в C #?

Проще говоря, как можно увеличивать и уменьшать изображение, когда я программно нажимаю на изображение в C #?

Ответы [ 3 ]

3 голосов
/ 29 декабря 2010

Если вы используете GDI + , то вы, безусловно, можете сделать это, используя класс преобразования Matrix следующим образом ...

// Get hold of your graphics context...
using(Graphics g = this.CreateGraphics())
{
    // When drawing we want to apply a scaling of 2,2 (making it bigger!)
    Matrix m = new Matrix();
    m.Scale(2, 2, MatrixOrder.Append);
    g.Transform = m;

    // Draw the actual image using the assigned matrix transform
    g.DrawImage(...);        
}

КогдаВы хотите увеличивать или уменьшать масштаб, вы просто изменяете используемые значения масштабирования.

2 голосов
/ 29 декабря 2010

Для этого вам понадобится использовать функции рисования GDI + (предоставляемые в .NET Framework как методы класса Graphics).По сути, вы будете перерисовывать увеличенную версию базового изображения на панели дисплея.

Используя что-то вроде Graphics.DrawImage, все, что вам нужно сделать, это указать базовое изображение,исходный прямоугольник (часть базового изображения для увеличения) и целевой прямоугольник (размеры нового увеличенного изображения).

Здесь доступно учебное пособие, которое, возможно, стоит потратить время на проверкуout (ссылка для скачивания исходного кода находится внизу страницы): http://www.vcskicks.com/image-zoom.php

Если это только подогревает ваш аппетит к графике в C #, ознакомьтесь с этой статьей , чтобы узнать большевсестороннее представление о графических возможностях.

1 голос
/ 29 декабря 2010

Отказ от ответственности: я работаю на Atalasoft

Наш DotImage Photo SDK является бесплатным и имеет элемент управления WinForms, который имеет эту и многие другие функции (панорамирование, автоматическое увеличение, увеличительное стекло и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...