C#如何重叠图像?

时间:2011-04-17 22:50:43

标签: c# image image-processing overlap

  

可能重复:
  How to merge two images into a single Jpeg

我有2张图片,

Image.FromFile("images/1.png");
Image.FromFile("images/2.png");

我想重叠这些图像并构建一个新图像我该怎么做?

由于

2 个答案:

答案 0 :(得分:1)

Image image1 = Image.FromFile("images/1.png");
Image image2 = Image.FromFile("images/2.png");
using(Graphics g = Graphics.FromImage(image1)) {
     g.DrawImageUnscaled(image2, 0, 0);
}

如果您不想缩放或翻译任何一张图片,这是最简单的方法。结果将存储在image1中。您还可以创建新图像来执行此操作,偏移图像,缩放图像,更改透明度等。

答案 1 :(得分:0)

嗯,这取决于你正在寻找什么类型的效果,但你没有给我们太多的信息,所以你可以从一个简单的添加剂例程开始。循环遍历两个图像的共享区域中的每个像素,并将像素组件值加在一起,最大限度地钳位以避免溢出(假设每个组件有一个字节,可能为255)。

您可以使用GDI +位图方法GetPixelSetPixel执行此操作,或者如果证明太慢,您可以调用LockBits并直接获取内存中的图像数据。< / p>