c++接口获取byte[448*448],转图片时报以下错误
,
如果调大接受byte数
组为byte[450*450],不会报错但是图片为空。
参考https://blog.csdn.net/qq_32250495/article/details/50925592
试一下这个
https://gitee.com/apull/EXEStart/blob/master/EXEStart/GameItem.cs
这个是字符串保存image的2转换个方法。
/// <summary>
/// 对图像进行Base64编码
/// </summary>
/// <param name="img">要进行编码的图像</param>
/// <returns>编码后的Base64字符串</returns>
public static string imgToBase64(Image img)
{
if (img == null) return "";
string base64String;
byte[] bytes;
using (MemoryStream ms = new())
{
img.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
bytes = ms.GetBuffer();
}
base64String = Convert.ToBase64String(bytes);
return base64String;
}
/// <summary>
/// 转换Base64字符串为图像
/// </summary>
/// <param name="base64String">图像编码后的Base64字符串</param>
/// <returns>成功返回图像,失败返回null</returns>
public static Image Base64ToImg(string base64String)
{
if (base64String.Length == 0) return null;
Image img = null;
byte[] bytes = Convert.FromBase64String(base64String);
try
{
using (MemoryStream ms = new(bytes, 0, bytes.Length))
{
img = Image.FromStream(ms, true);
}
}
catch { }
return img;
}
先将byte转base64字符串,再将base64转图像,就好了。常碰到这样的问题,转一下就可以用了