C# WPF:";编辑";图像和保存

C# WPF:";编辑";图像和保存,c#,wpf,xaml,image-processing,tags,C#,Wpf,Xaml,Image Processing,Tags,我想这样做:在标记中打开一个图像,并在其上添加一些其他标记,例如绿色矩形。之后,我想保存它像一个矩形的部分,它的图像。通常,用户应该拖放矩形,并可以调整其大小。但是问题是:我如何保存它呢?我想我应该为所有这些文件保存父标签,例如或,但是这可能吗 Transform transform = myCanvas.LayoutTransform; myCanvas.LayoutTransform = null; Size size = new Size(myCanvas.Width,myCanvas.

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

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等