如何在一张图片中合并画布?我需要这样做,因为我想保存合并图像。
这是我的代码:
WriteableBitmap wb = new WriteableBitmap(50, 50);
wb.LoadJpeg(stream);
Image t = new Image();
t.Source = wb;
Canvas.SetLeft(t, 130);
Canvas.SetTop(t, 130);
canvas1.Children.Add(t);
所以现在我想将这两个图像合并为一个并使用我的保存功能。
答案 0 :(得分:1)
您可以使用Graphics.FromImage()和Graphics.DrawImage()
http://msdn.microsoft.com/en-us/library/system.drawing.graphics.fromimage%28v=vs.110%29.aspx
http://msdn.microsoft.com/en-us/library/42807xh1%28v=vs.110%29.aspx
// Pseudo ...
using (Graphics gfx = Graphics.FromImage(image1))
{
gfx.DrawImage(image2, new Point(0, 0));
}
// image1 is now merged with image 2
答案 1 :(得分:0)
您没有详细说明" merge"的含义。你的意思是,将图像重叠在一起(如果是这样的话,什么覆盖模式?添加?乘?正常?)或者将图像并排合并成一个更大的图像(比如拍3张照片)一台相机,然后将它们组合成一张长照片)?无论哪种方式,您都需要查看System.Drawing命名空间。
假设后者是这种情况。这就是你要做的事情:
Image a = ...;
Image b = ...;
//assuming equal height, and I forget whether the ctor is width first or height first
Image c = new Image(a.Width + b.Width, a.Height);
Graphics g = Graphics.FromImage(c);
g.DrawImage(...); //a lot of overloads, better check out the documentation
SaveImage(c); //depending on how you want to save it
g.Dispose();
答案 2 :(得分:0)
您需要第三方库,例如WriteableBitmapEx。查看Blit
方法。