我以前从未使用过InkCanvas
控件。我需要的是将一个文件加载到InkCanvas
中,绘制一些涂鸦并获得结果图像。我想用得到的图像做一些额外的操作。
至于储蓄
如果我错了,请纠正我。我找到了一个链接:http://www.centrolutions.com/Blog/post/2008/12/09/Convert-WPF-InkCanvas-to-Bitmap.aspx根据帖子,除了用户涂鸦外,还会考虑加载图片。或者它只将涂鸦转换为位图?
关于装载
如何使用OpenFileDialog加载图像?我不想使用ISF。
谢谢!
保存:
如果希望在保存后能够操纵笔划,则需要保存笔划。您可以使用StrokeCollection.Save方法来完成此操作。
var fs = new FileStream(inkFileName, FileMode.Create);
inkCanvas1.Strokes.Save(fs);
然后,您可以再次加载它,并可以访问各个笔划。但是,一旦将其渲染出来(例如,渲染为位图),则渲染的文件只能作为位图加载,而不能作为单个笔划加载。(当然,您可以同时执行这两种操作,并将笔划另存为一个单独的文件)。要保存为位图,您可以使用发布到的链接中的代码。
加载
将位图加载到Image控件非常简单,因为OpenFileDialog
将返回图像路径。
if (myOpenFileDialog.ShowDialog() == DialogResult.OK)
{
myImageControl.Source = new BitmapImage(new Uri(myOpenFileDialog.FileName, UriKind.Absolute));
}
这将加载图像并将其显示在表单上的图像控件中
编辑:我不认为您可以直接将位图加载到InkCanvas。但是,您可以加载笔划。
要再次加载笔划,可以使用StrokeCollection(Stream)
var fs = new FileStream(inkFileName,
FileMode.Open, FileAccess.Read);
StrokeCollection strokes = new StrokeCollection(fs);
inkCanvas1.Strokes = strokes;
有关更多函数,您可以阅读这篇CodeProject文章。