Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从BitmapSource转换为Visual?_C#_.net_Wpf_Bitmapsource - Fatal编程技术网

C# 从BitmapSource转换为Visual?

C# 从BitmapSource转换为Visual?,c#,.net,wpf,bitmapsource,C#,.net,Wpf,Bitmapsource,有没有办法将System.Windows.Media.Imaging.BitmapSource转换为System.Windows.Media.Visual?我有一个BitmapSource的实例,但我想将其转换为Visual,以便利用WPF矢量图形。我已经看到了很多从可视到位图的例子,但是如何使用C#实现另一个方向呢 var-stream=新文件流( @“C:\Image.png”,FileMode.Open,FileAccess.Read,FileShare.Read); var解码器=新的P

有没有办法将
System.Windows.Media.Imaging.BitmapSource
转换为
System.Windows.Media.Visual
?我有一个
BitmapSource
的实例,但我想将其转换为
Visual
,以便利用WPF矢量图形。我已经看到了很多从可视到位图的例子,但是如何使用C#实现另一个方向呢

var-stream=新文件流(
@“C:\Image.png”,FileMode.Open,FileAccess.Read,FileShare.Read);
var解码器=新的PngBitmapDecoder(
流,BitmapCreateOptions.PreservePixelFormat,BitmapCacheOption.Default);
BitmapSource BitmapSource=解码器。帧[0];

//Visual=bitmapSource.ToVisual();可以将BitmapSource放在图像控件中,该控件是一个可视控件。但是,它仍然是光栅图像。请更具体一些。正如克莱门斯所指出的,
图像
控件是一个
视觉
。或者,您可以创建一个
DrawingVisual
,并将位图渲染到其中。但不管怎样,你仍然会在下面有一个位图。这两种方法中有哪一种在你的情况下不起作用?我真的在寻找一种方法,在下面有一个基于向量的图像。如何将光栅图像转换为矢量图像?@Robin:这是一个完全不同的问题。根据问题的精确措辞,简短的回答是,你不能。WPF没有“位图到矢量”功能。您需要自己编写或使用第三方库。网络搜索将为您显示这两个方面的大量选项。
var stream = new FileStream(
    @"C:\Image.png", FileMode.Open, FileAccess.Read, FileShare.Read);

var decoder = new PngBitmapDecoder(
    stream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);

BitmapSource bitmapSource = decoder.Frames[0];
// Visual visual = bitmapSource.ToVisual(); <-- I'd like to do this