我想做这样的事情:在<image>
标签中打开一个图像并在其上添加一些其他标签,例如绿色矩形。之后,我想将其保存为在其某些部分带有矩形的图像。一般来说,用户应该拖放矩形并可以调整它的大小。但问题是:我怎样才能保存它?我想我应该为所有这些人保存父标签,例如,<grid>
或者<canvas>
但有可能吗?
问问题
1518 次
1 回答
1
Transform transform = myCanvas.LayoutTransform;
myCanvas.LayoutTransform = null; Size size = new Size(myCanvas.Width,myCanvas.Height); myCanvas.Measure(size);
myCanvas.Arrange(new Rect(size));
RenderTargetBitmap renderBitmap = new RenderTargetBitmap((int)size.Width, (int)size.Height, 96d, 96d,PixelFormats.Pbgra32);
renderBitmap.Render(myCanvas);
using (FileStream outStream = new FileStream(path.LocalPath, FileMode.Create))
{
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(renderBitmap));
encoder.Save(outStream);
}
myCanvas.LayoutTransform = transform;
有关详细说明(以及上述代码的来源),请参阅此博客文章:
您可以根据使用的编码器保存为 PNG、JPG 等
于 2013-01-24T13:19:57.967 回答