有没有人知道如何从具有较高高度的现有图像创建新位图,但是不缩放图像并且在新位图中的原始图像下面只有透明,黑色或白色?
我基本上有一张比第二张更高的照片,我需要第二幅高度与第一幅相同,而不是拉伸它。
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。
答案 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)并在其上绘制最终图像。