我有这个十六进制数据,
0xFFD8FFE000104A46494600...
,我把它放在一个字符串中,在我的WPF应用程序的xaml中,我有一个<Image/>
,这个编码图像需要结束。我对此有几个疑问。
最大的问题,我只是找不到解码它的方法,我也不明白它是如何工作的,我只知道我有一个字符串,我需要得到一个图像,我不知道该图像是否需要保存在某个地方,或者我可以直接将图像添加到实际脚本中的
<Image/>
...我需要这方面的帮助,我只是想要一个方法,我可以在其中给出字符串并返回我可以使用的图像。
最好的方法是什么?例如,如果它是不同页面上的个人资料图片,我应该以某种方式将其保存在某个地方,或者将字符串放在某个地方并一直对其进行解码,还是?..
注意:十六进制数据是正确的,我使用此网站进行输入+输出:单击查看我的测试
基本上,您可以做的是将十六进制字符串转换为字节数组,然后创建
BitmapImage
并将其设置为 BitmapImage
控件的源。将十六进制字符串转换为字节数组可以这样完成(source
之后,您需要从字节数组中制作
public static byte[] StringToByteArray(String hex)
{
int NumberChars = hex.Length;
byte[] bytes = new byte[NumberChars / 2];
for (int i = 0; i < NumberChars; i += 2)
bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16);
return bytes;
}
。你可以这样做(
来源):
BitmapImage
然后您需要将
public BitmapImage ToImage(byte[] array)
{
using (var ms = new System.IO.MemoryStream(array))
{
var image = new BitmapImage();
image.BeginInit();
image.CacheOption = BitmapCacheOption.OnLoad; // here
image.StreamSource = ms;
image.EndInit();
return image;
}
}
设置为
BitmapImage
控件的源。你可以这样做:Image
希望这有效。现在还不能真正尝试。