gpt4 book ai didi

c# - InkCanvas 加载/保存操作

转载 作者:行者123 更新时间:2023-11-30 15:07:47 26 4
gpt4 key购买 nike

我以前从未使用过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);

然后您可以再次加载它并访问各个笔画。但是,一旦您将其渲染出来(例如渲染为位图),则该渲染文件只能作为位图加载,而不能作为单个笔画加载。 (当然,您可以同时执行这两项操作并将笔画保存为单独的文件)。要另存为位图,您可以使用您发布到的链接中的代码。

正在加载

将位图加载到图像控件非常简单,因为 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 article .

关于c# - InkCanvas 加载/保存操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6246009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com