如何在不拉伸图像的情况下调整图像大小?

时间:2013-06-18 18:51:01

标签: c# bitmap system.drawing

我试图在不拉伸图像的情况下调整C#中的图像(位图)。

假设图像为100x100像素。

enter image description here

我希望将其设为100x110像素,并在图像底部留下一个白色间隙,用于添加额外的像素。

enter image description here

我已经这样做了,但找不到指定像素格式的方法。我需要它8bppindexed。我附上了一个示例来显示前后图像。

这是我到目前为止的代码。

string visit2 = "C:\\users\\moorez\\desktop\\visit2.bmp";

Bitmap orig = new Bitmap(visit2);
int width = orig.Width;
int height = orig.Height;
int newHeight = height + 2;
Bitmap newImage = orig.Clone(new Rectangle(0, 0, width, height), System.Drawing.Imaging.PixelFormat.Format8bppIndexed);
newImage.Save("C:\\users\\moorez\\desktop\\visit3.bmp");

Bitmap test = new Bitmap(width, newHeight);
Graphics g = Graphics.FromImage(test);
g.DrawImage(newImage, new Point(0, 0));
test.Save("C:\\users\\moorez\\desktop\\visit4.bmp");

1 个答案:

答案 0 :(得分:0)

你可以试试这个

Bitmap bmp = new Bitmap(newImage.Width, newHeight);
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.White);
g.DrawImageUnscaled(newImage, 0, 0, newImage.Width, newHeight);
bmp.Save(@"C:\\users\\moorez\\desktop\\visit3.bmp", ImageFormat.Jpeg);