WPF:“编辑”图像并保存

本文关键字:图像 保存 编辑 WPF | 更新日期: 2023-09-27 17:55:34

我想做这样的事情:在<image>标签中打开一个图像,并在上面添加一些其他标签,例如绿色矩形。之后,我想将其保存为图像,并在其中的某些部分带有矩形。通常,用户应该拖放矩形并可以调整其大小。但问题是:我该如何保存它?我想我应该为所有这些保存父标签,例如<grid><canvas>但这可能吗?

WPF:“编辑”图像并保存

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;

有关详细说明(以及上述代码的来源),请参阅此博客文章:

http://denisvuyka.wordpress.com/2007/12/03/wpf-diagramming-saving-you-canvas-to-image-xps-document-or-raw-xaml/

您可以另存为 PNG、JPG 等,具体取决于您使用的编码器