【问题标题】:Don't scale image when creating new bitmap from existing image从现有图像创建新位图时不要缩放图像
【发布时间】:2011-07-12 02:21:26
【问题描述】:

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

我基本上有一张图片比第二张高,我需要第二张和第一张一样高,而不是拉伸它。

            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。

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    通过使用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 的调用。

    【讨论】:

      【解决方案2】:

      创建您的“标准”尺寸位图并用白色填充它,然后调用 Bitmap.MakeTransparent(Color.White) 并在其上绘制最终图像。

      【讨论】:

        猜你喜欢
        • 2017-09-13
        • 1970-01-01
        • 2011-08-23
        • 1970-01-01
        • 2016-07-31
        • 1970-01-01
        • 1970-01-01
        • 2013-11-01
        • 1970-01-01
        相关资源
        最近更新 更多