1. 程式人生 > >Image轉Base64

Image轉Base64

標準 serialize con var str turn formatter byte[] 註意

今天和一個朋友聯調圖片轉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;
}

Image轉Base64