Reputation: 12007
I have an image that is 240x320 (iphone camera image in portrait), and I need to programmatically (in C#) add white "bars" to the sides increasing the full image size to 320x320. I don't want to scale the image because that would mess up the aspect ratio.
I have found a lot of info about how to remove white bars with c#, but nothing about how to add them. I am at a loss. Does anyone have any input that might lead me the correct direction?
Thanks a bunch, Brett
Upvotes: 13
Views: 8907
Reputation: 2049
Here's a great link where a more generalized approach is described for resizing images and adding white bars, either at the top or at the bottom (depending of image orientation)c# Image resizing to different size while preserving aspect ratio
Upvotes: 0
Reputation: 3785
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);
}
}
Remember to dispose the object after use ;)
Upvotes: 19
Reputation: 60190
Basically create a new bitmap with the required dimension, clear it with the color you want and then draw the smaller bitmap so that it is centered vertically.
Upvotes: 0
Reputation: 65116
Create a new empty white bitmap of the desired size and blit the smaller image onto it.
Upvotes: 4