参考: https://www.cnblogs.com/hezhengyi/p/11172197.html
/// <summary>
/// Image 转成 base64
/// </summary>
/// <param name="fileFullName"></param>
private string ImageToBase64(string fileFullName)
{
try
{
Image img = UrlToImage(fileFullName);
Bitmap bmp = new Bitmap(img);
MemoryStream ms = new MemoryStream();
var suffix = fileFullName.Substring(fileFullName.LastIndexOf('.') + 1,
fileFullName.Length - fileFullName.LastIndexOf('.') - 1).ToLower();
var suffixName = suffix == "png"
? ImageFormat.Png
: suffix == "jpg" || suffix == "jpeg"
? ImageFormat.Jpeg
: suffix == "bmp"
? ImageFormat.Bmp
: suffix == "gif"
? ImageFormat.Gif
: ImageFormat.Jpeg;
bmp.Save(ms, suffixName);
byte[] arr = new byte[ms.Length]; ms.Position = 0;
ms.Read(arr, 0, (int)ms.Length); ms.Close();
string base64Str = Convert.ToBase64String(arr);
return PrefectBase64(base64Str);
}
catch (Exception ex)
{
return null;
}
}
private static Image UrlToImage(string url)
{
WebClient mywebclient = new WebClient();
byte[] Bytes = mywebclient.DownloadData(url);
using (MemoryStream ms = new MemoryStream(Bytes))
{
Image outputImg = Image.FromStream(ms);
return outputImg;
}
}
// 处理base64字符
private static string PrefectBase64(string Base64Str)
{
string dummyData = Base64Str.Replace("%", "").Replace(",", "").Replace(" ", "+");
if (dummyData.Length % 4 > 0)
{
dummyData = dummyData.PadRight(dummyData.Length + 4 - dummyData.Length % 4, '=');
}
return dummyData;
}