Расширить изображение с прозрачной частью

Я делаю фоторедактор и отображаю изображение в pictureBox, и я изменяю размер изображения, чтобы оно поместилось в pictureBox, не влияя на соотношение сторон.

Например, если pictureBox имеет размер (400x400), а изображение - (800x600), я изменю его размер до (400x300) программно.

Проблема в том, что я хочу, чтобы это изображение было размером (400x400), чтобы покрыть весь PictureBox, для этого я хочу добавить прозрачную часть в свое изображение, чтобы сделать его от (400x300) до (400x400)

Снимок моего изображения в pictureBox введите здесь описание изображения

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

Опять же, я хочу, чтобы размер изображения (синий) был равен размеру изображения, а оставшаяся часть изображения была покрыта прозрачной частью изображения.

Примечание. Я не хочу растягивать изображение, а добавляю прозрачную часть.

Спасибо,


person Nabeel Zafar    schedule 26.12.2015    source источник


Ответы (1)


Самый прямой способ — создать растровое изображение большего размера, а затем DrawImage в него изображение.

Bitmap original = (Bitmap) Bitmap.FromFile(someFileName);
Size sz = yourPictureBox.ClientSize;
Bitmap bmp = new Bitmap(sz.Width, sz.Height); 
using (Graphics G = Graphics.FromImage(bmp))
    G.DrawImage(original, 0, 0);
yourPictureBox.Image = bmp;
person TaW    schedule 26.12.2015