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