如何将c#imagesource存储到数据库中?

时间:2015-07-30 02:50:58

标签: c# sql wpf c#-4.0 wpf-controls

如何将BitmapImage类型ImageSource存储到图像类型数据库

2 个答案:

答案 0 :(得分:2)

只需将其转换为字节数组,并将数据库中的图像定义为varbinary(MAX)
您可以使用以下代码:

public static Byte[] ConvertToByteFromBitmapImage(BitmapImage bitmapImage)
{
    byte[] data;
    JpegBitmapEncoder encoder = new JpegBitmapEncoder();

    encoder.Frames.Add(BitmapFrame.Create(bitmapImage));
    using(MemoryStream ms = new MemoryStream())
    {
        encoder.Save(ms);
        data = ms.ToArray();
    }

    return data;
}

注意:您可以使用ans简单地将BitmapImage转换为ImageSource

答案 1 :(得分:0)

Stream stream = File.OpenRead("<your filePath>");
 var buffer = new byte[stream.Length]; 
 stream.Read(buffer, 0, (int) stream.Length);

现在您可以使用数据类型varbinary(MAX)将缓冲区保存到列中。 如果你把它们存放在一块块中就好了。