【发布时间】:2011-03-04 22:17:54
【问题描述】:
我必须创建应用程序,它可以在其中加载一些图像,应用一些过滤器,绘制几条线并保存它。我必须使用 WPF 来做到这一点。如何在 WPF 中绘制图像控件?或者其他控件更适合它?
【问题讨论】:
我必须创建应用程序,它可以在其中加载一些图像,应用一些过滤器,绘制几条线并保存它。我必须使用 WPF 来做到这一点。如何在 WPF 中绘制图像控件?或者其他控件更适合它?
【问题讨论】:
您可以通过将 InkCanvas 添加到您的页面、将您的图像添加为 InkCanvas 的背景图像并添加保存功能来做到这一点。
在表单中添加“保存”按钮并使用以下代码进行保存:
string newImagePath = "your file path";
var ms = new MemoryStream();
using (FileStream fs = new FileStream(newImagePath , FileMode.Create)
{
var rtb = new RenderTargetBitmap((int)inkImageCanvas.Width, (int)inkImageCanvas.Height, 96d, 96d, PixelFormats.Default);
rtb.Render(inkImageCanvas);
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));
encoder.Save(fs);
}
newImagePath 是新文件的路径; inkImageCanvas 是您的 InkCanvas 控件。
这会将您的 inkCanval 的内容保存为 jpg 文件。
【讨论】: