将位图图像绑定到数据库时设置源属性

时间:2012-01-25 21:39:14

标签: c# wpf image converter bitmapimage

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

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

使用BitmapImage的原因是因为我发现当我使用图像时,显示的缩略图非常大,以至于减慢了程序的速度。我打算在bitmapimage中使用DecodePixelHeight属性允许我使用较小的缩略图大小,从而使我的程序不会变慢。

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

1 个答案:

答案 0 :(得分:1)

您遇到的问题很可能与ImageData不是Stream类型的事实有关,StremSource属性实际上需要Byte[] imagesBytes = GetBytesOfImageFromDB(); ImageData= new MemoryStream(imagesBytes);

假设代码可能是这样的:

ImageData

假设在这种情况下Stream模型查看器属性的类型为{{1}}。

希望这有帮助。