所以我遇到了一个问题,我不知道如何在 WPF 应用程序中将十六进制字符串转换为 BitmapImage。这几乎在这里得到解决:链接到问题+解决方案 我从中得到了这个脚本:
public BitmapImage StringToImage(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);
}
using (var ms = new System.IO.MemoryStream(bytes))
{
var image = new BitmapImage();
image.BeginInit();
image.CacheOption = BitmapCacheOption.OnLoad;
image.StreamSource = ms;
image.EndInit();
return image;
}
}
所以当十六进制具有均匀数量的字符时,这非常有效,但问题是有时字符数量不均匀,那么它就不起作用。第一个解决办法是在前面或末尾加一个0,前面只是又报错,后面好像可以了。然而现在我意识到,如果我在十六进制字符串末尾添加 0,它只会生成图像的一半,而不是整个图像。 有谁知道如何解决这个问题?如果我能解决这个问题那就太棒了。
如果十六进制字符串有奇数个字符,则十六进制值是错误的,它不能是奇数