C # изображение пробела - PullRequest
       9

C # изображение пробела

11 голосов
/ 31 марта 2010

У меня есть изображение размером 240x320 (изображение с камеры iphone в портретной ориентации), и мне нужно программно (в C #) добавить белые «полосы» по сторонам, увеличив полный размер изображения до 320x320. Я не хочу масштабировать изображение, потому что это испортит соотношение сторон.

Я нашел много информации о том, как удалить белые полосы с помощью c #, но ничего о том, как их добавить. Я в растерянности. У кого-нибудь есть какие-либо данные, которые могут привести меня в правильном направлении?

Спасибо большое, Brett

Ответы [ 4 ]

14 голосов
/ 31 марта 2010
using (System.Drawing.Image src = System.Drawing.Image.FromFile("picture.jpg"))
{
       using (Bitmap bmp = new Bitmap(320, 320))
       {
                Graphics g = Graphics.FromImage(bmp);
                g.Clear(Color.White);
                g.DrawImageUnscaled(src, 60, 0, 240, 320);
                bmp.Save("file.jpg", ImageFormat.Jpeg);
       }
}

Не забудьте утилизировать объект после использования;)

4 голосов
/ 31 марта 2010

Создайте новое пустое белое растровое изображение нужного размера и добавьте на него изображение меньшего размера.

0 голосов
/ 13 марта 2015

Вот отличная ссылка, где описан более обобщенный подход для изменения размера изображений и добавления белых полос вверху или внизу (в зависимости от ориентации изображения) 1002 *

0 голосов
/ 31 марта 2010

По сути, создайте новое растровое изображение с требуемым размером, очистите его нужным цветом и нарисуйте меньшее растровое изображение так, чтобы оно было центрировано по вертикали.

...