Другие способы изменить размер изображения, чем Graphics.DrawImage - PullRequest
1 голос
/ 21 февраля 2010

Не спрашивайте меня, почему, но я не могу использовать этот метод, потому что мне нужно создать 2 объекта изображения, чтобы он работал.

Я хочу иметь возможность изменить размер одного объекта Image без необходимости создания другого. Это возможно и как?

Ответы [ 4 ]

2 голосов
/ 23 февраля 2010

Если ваша причина - проблема памяти или что-то в этом роде (очень большое изображение). Вы можете попытаться открыть его и изменить его размер, используя Aforge .

1 голос
/ 06 марта 2010

Вы можете использовать Matrix, чтобы изменить размер изображения. Вы должны создать матрицу, масштабировать ее и установить для вашего Graphics объекта.

Matrix mx = new Matrix();
mx.Scale(2.0f,2.0f);
graphics.Transform=mx;
graphics.DrawImage(...);
0 голосов
/ 21 февраля 2010

Нет, это невозможно. Высота и ширина объекта Image фиксируются во время создания объекта Image. Это ограничение существует в базовом API GDI +.

Если вам не нужно изменять Image, возможно, допустимо масштабировать его каждый раз, когда он отображается. Например, в событии Control.Paint вы можете использовать Graphics.DrawImage, чтобы отобразить его непосредственно в контексте PaintEventArgs.Graphics. Это позволит вам нарисовать изображение разных размеров, не создавая дополнительных Image объектов.

0 голосов
/ 21 февраля 2010

Вы можете поместить Image в ViewBox.

См. http://www.wpftutorial.net/ViewBox.html

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