在一个图片框中绘制2个位图

时间:2015-09-23 18:16:33

标签: c#

我有一个对象和一个自定义方法来绘制它,它返回一个Bitmap。

我画了一个这样的对象:

pictureBox1.Image = MyObject.DrawMyObject(startingPoint);

我如何将其中两个放在一个图片框中?我尝试使用一些运算符,但似乎它们不适用于Bitmap类型。我看过Image属性只接受一个Bitmap,但不了解如何绘制一个Bitmap,然后是第二个,而不会丢失第一个。

1 个答案:

答案 0 :(得分:2)

好的,从评论中跟进,你想合并两张图片,希望透明,否则你只需要透支一切。 让图像1

a

图像2

aa

请注意,它们具有相同的尺寸(800 x 600),因此我无需担心计算尺寸。 (否则,将每个图片的宽度和高度的最大值作为新尺寸)。由于两者都是透明的,我想在骰子上绘制stackoverflow徽标,我使用Graphics对象和DrawImage函数。

using System.Drawing;

namespace stuff
{
    class Program
    {
        static void Main(string[] args)
        {

            Bitmap pImage1 = new Bitmap(@"C:\Users\...\Desktop\PNGtest.png");
            Bitmap pImage2 = new Bitmap(@"C:\Users\...\Desktop\logo.png");

            using(Graphics g = Graphics.FromImage(pImage1))
            {
                g.DrawImage(pImage2, new Point(0, 0));
                g.Save();
            }

            pImage1.Save(@"C:\Users\...\Desktop\merged.png", System.Drawing.Imaging.ImageFormat.Png);
        }
    }
}

结果 enter image description here

您可以使用Point中的DrawImage()参数修改第一个图像在第一个图像上绘制的起点。

相关问题