2012-03-06 96 views
1

我想在C#中做一个类,它提供了ServiceFacade来调用它。合并,重叠图片并保存到一个文件

现在我可以从其他服务中获取图像。 For Example.Example2

在该链接中,您可以看到地图图片的网址。

然后我要得到许多地图图像(地图获得的许多层)

第一图像。

Image 1

第二图像。

enter image description here

问题

如何在众多的图像时,有一个形象如何将它保存到本地磁盘重叠一个图像,然后。

结果

enter image description here

在此先感谢。

回答

2

为了重叠它们(不确定你的意思是什么),但是你首先要创建一个你需要的大小的位图,以便在布局中保存所有的图像。

Bitmap final = new Bitmap(int x, int y); 

那么你需要从该位图获取图形设备。您将使用此对象将所有其他图像绘制到所需铺设中所需位置的最终图像上。

using (Graphics g = Graphics.FromImage(final)) 
{ 
    foreach (Image image in imageList) 
    { 
     g.DrawImage(image, point); // point - location of where images top-left corner should be. 
    } 
} 

然后当你完成后,你只需要调用图像的保存功能到字符串文件的位置。

final.Save(location); 
+0

我有问题,如果我有两个图像,我必须调用'g.DrawImage(image,point);'2次对吧?并且'g.DrawImage(image,point)中的'point'是什么;' – OammieR 2012-03-06 02:32:42

+0

您需要为每个想要绘制的图像调用g.DrawImage。点是最后一个位图上您想要从左上角开始绘制位图的位置。 http://msdn.microsoft.com/en-us/library/42807xh1.aspx – Wizetux 2012-03-06 02:37:36

+0

谢谢我通过添加两个图像来测试它,它的运行正常,但图像的结果是无效的,它没有重叠这两张图片。这只是复制了我添加的最后一张图片。 – OammieR 2012-03-06 03:04:24