从现有图像创建新位图时,请勿缩放图像

时间:2011-07-11 18:07:37

标签: c# .net

有没有人知道如何从具有较高高度的现有图像创建新位图,但是不缩放图像并且在新位图中的原始图像下面只有透明,黑色或白色?

我基本上有一张比第二张更高的照片,我需要第二幅高度与第一幅相同,而不是拉伸它。

            img2 = new Bitmap(lImages[2],new Size(pictureBox.Image.Width,pictureBox.Image.Height));
            img2 = ((Bitmap)img2).Clone(new Rectangle(0, 0, pictureBox.Image.Width, pictureBox.Image.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb);

C#.NET 4.0。

2 个答案:

答案 0 :(得分:3)

通过使用Graphics对象,您可以轻松实现此目的:

Bitmap temp = new Bitmap(new Size(pictureBox.Image.Width,pictureBox.Image.Height));
using(Graphics g = Graphics.FromImage(temp))
{
    g.DrawImage(img2, 0, 0);
}
img2 = temp;

现在img2引用了一个所需大小的新Bitmap对象,其上绘有原始(未拉伸)图像。

注意:要控制额外空间的颜色,请在绘制图像之前添加对g.FillRect的调用。

答案 1 :(得分:0)

创建“标准”大小的位图,并用白色填充,然后调用Bitmap.Make Transparent(Color.White)并在其上绘制最终图像。