如何将 C# 图像源存储到数据库中?
How to store c# imagesource into database ?
如何将BitmapImage类型的ImageSource存储到图片类型的数据库中
只需将其转换为字节数组并在数据库中将图像定义为 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
。
Stream stream = File.OpenRead("<your filePath>");
var buffer = new byte[stream.Length];
stream.Read(buffer, 0, (int) stream.Length);
现在您可以将缓冲区保存到数据类型为 varbinary(MAX) 的列中。
如果你把它们存储在块中就好了。
如何将BitmapImage类型的ImageSource存储到图片类型的数据库中
只需将其转换为字节数组并在数据库中将图像定义为 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
。
Stream stream = File.OpenRead("<your filePath>");
var buffer = new byte[stream.Length];
stream.Read(buffer, 0, (int) stream.Length);
现在您可以将缓冲区保存到数据类型为 varbinary(MAX) 的列中。 如果你把它们存储在块中就好了。