我想将图像与覆盖图一起保存,在我的情况下,这是覆盖整个图像的一条简单线。当我保存该图像时,它不包含我的行,因此我的问题是如何将该行与我的图像合并以将两者保存在一个文件中?
这是我保存图像的代码:
// Save image
var encoder1 = new PngBitmapEncoder();
encoder1.Frames.Add(BitmapFrame.Create((BitmapSource)image.Source));
using (FileStream stream = new FileStream("test.png", FileMode.Create))
encoder1.Save(stream);
该行是这样添加的:
grid2.Children.Add(myLine);
如何将线条与图像合并以同时保存两者?
在WPF中,有多种方法可以做到这一点。在这里,您似乎只想将grid2
面板的内容绘制到位图中(当然,假定Image控件也是的子元素grid2
)。
可以使用RenderTargetBitmap这样轻松地完成此操作:
var bitmap = new RenderTargetBitmap(
(int)grid2.ActualWidth, (int)grid2.ActualHeight, 96, 96, PixelFormats.Default);
bitmap.Render(grid2);
var encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bitmap));
using (var stream = new FileStream("test.png", FileMode.Create))
{
encoder.Save(stream);
}
请注意,该解决方案使您可以在图像顶部绘制任何类型的UI元素(不仅是线条),并将结果保存到文件中。
如果您可能只想加载图像文件,在顶部绘制一些简单的形状并将其保存回文件,则可以考虑使用WritabelBitmapEx。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句