在我的sql表中,我有一个表示图像的varchar。 字符串如下所示:
255 216 255 224 0 16 74 70 73 70 0 1 1 1 0 96 0 96 0 0 255 219 0 67 ...
保存为.txt,大小约为20KB。
第一个问题:这是什么类型的字符串?我无法在网上找到任何东西。在我看来像RGB值,因为255是那里的最高数字。
如何使用C#(精确的ASP.net MVC)将此字符串格式再次转换为实际图像?
谢谢。
更新
与开发者交谈:
图像从 Active Directory thumbnailPhoto 属性中提取并存储为字符串。也许最好转换源代替。
答案 0 :(得分:2)
您需要知道编码。作为一个例子,这里是我如何将二进制字符串解码为tiff图像:
private static BlockUIContainer ConvertBinaryToImageUIContainer(string binary)
{
byte[] binaryData = Convert.FromBase64String(binary);
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.StreamSource = new MemoryStream(binaryData);
bitmapImage.EndInit();
BlockUIContainer container = new BlockUIContainer();
container.Child = new System.Windows.Controls.Image { Source = bitmapImage };
return container;
}
取二进制字符串并根据编码将其转换为byte
。就我而言,它是Base64String
。创建新图像并创建memorystream
作为源。我可以选择在BlockUIContainer中设置我的WPF应用程序,但您可以按照自己的意愿使用bitmapImage
或byte[]
数据。希望这会有所帮助。