WPF图片:从文件显示图片,怎么样?

时间:2011-08-26 09:39:30

标签: wpf image serialization uri deserialization

我想在WPF中显示图像,但使用的是实际图像,而不是使用URL。这是因为我想序列化图像,所以我可以轻松地携带它们。如果Image类只是Source,我怎么能这样做呢?这意味着,使用URI。这个想法很简单:序列化图像,然后,当反序列化完成时,它会将图像加载到像Image这样的控制器上。  是否有可能,让我说我有图像序列化,然后我怎么能得到他们的URI,甚至这样的东西甚至存在?这非常令人困惑。希望得到一些真正的启示......

我已经找到了很多代码片段,展示了如何序列化/反序列化但老实说我还没能测试它们,因为我的计划的初始部分已经暂停。虽然,如果有人有一个很好的清洁链接,我会很感激!

2 个答案:

答案 0 :(得分:1)

WPF不需要实际的URI;它需要一个ImageSource的实例,它恰好包含一个从stringImageSource的内置转换器,它将字符串解释为URI。

将序列化格式转换为ImageSource个实例的最简单方法是在IValueConverter中添加如下内容并返回BitmapImage

BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.StreamSource = /*your serialized image data in Stream form*/;
bi.EndInit();

答案 1 :(得分:0)

Image.Source 是一个URI,您可以输入URI,但它们只是使用{{1}自动转换为ImageSource }。因此,如果您要序列化和反序列化图片,则可以将相应的TypeConverter作为属性公开,然后可以将其设置为boundImageSource