Image转Base64

时间:2023-03-09 07:15:44
Image转Base64

今天和一个朋友联调图片转Base64时发现一个问题

public static string ImageToBase64(Image img)
{
BinaryFormatter binFormatter = new BinaryFormatter();
MemoryStream memStream = new MemoryStream();
binFormatter.Serialize(memStream, img);
byte[] bytes = memStream.GetBuffer();
string base64 = Convert.ToBase64String(bytes);
return base64;
}

注意这个是错误的,产生的Base64和标准的不一致。
使用下面这个可以

public static string ImageToBase64(Image img)
{
var ext = GetExtension(img);
byte[] imgByte = ImageToBytes(img);
string strbaser64 = Convert.ToBase64String(imgByte);
List<byte> listByte = new List<byte>();
listByte = imgByte.ToList();

return "data:image/"+ ext.Substring(1, ext.Length-1) + ";base64," + strbaser64;
}