【问题标题】:Setting source property when binding bitmap image to database将位图图像绑定到数据库时设置源属性
【发布时间】:2012-02-19 02:36:43
【问题描述】:

我正在使用以下代码将图像从我的数据库 (compact sql) 绑定到我的图像控件:

<Image MaxHeight="100" Stretch="UniformToFill">
    <Image.Source>
        <BitmapImage DecodePixelHeight="200" 
             StreamSource="{Binding ImageData}" />
    </Image.Source>
</Image>

之所以使用BitmapImage,是因为我发现在使用图片的时候,显示的缩略图太大了,会拖慢程序。我打算在位图图像中使用DecodePixelHeight 属性,以允许我使用较小的缩略图大小,从而防止我的程序变慢。

将它绑定到我的图像时遇到的问题是错误提示我没有正确设置StreamSource。我有一种感觉,这是因为我的图像以字节形式存储在数据库中(预先转换),而 BitmapImage(与标准的 Image 不同)不支持自动转换为图像格式。
它是否正确?如果是这样,我是否只需要实现一个转换器?

【问题讨论】:

  • 图片数据的类型是什么?
  • edit:抱歉,我在架构中将其作为二进制文件保存,但由于某种我不记得的原因,我不得不手动将其更改为在数据库中键入“图像”。我所知道的是,我在使用普通图像控件时可以正常工作,但在使用位图图像控件时却不行。

标签: c# wpf image converter bitmapimage


【解决方案1】:

您面临的问题很可能与您的ImageData 不是Stream 的类型有关,这实际上是StremSource 属性所必需的。

假设的代码,可能是这样的:

Byte[] imagesBytes = GetBytesOfImageFromDB();
ImageData= new MemoryStream(imagesBytes); 

假设在这种情况下 ImageData 模型查看器属性的类型为 Stream

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-18
    • 2011-03-11
    • 1970-01-01
    • 2010-12-02
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多