/// <summary>
/// 图片转Base64 (优化前)
/// </summary>
/// <param name="fileFullName"></param>
/// <returns></returns>
public static string ImageToBase64(string fileFullName)
{
    try
    {
        Bitmap bmp = new Bitmap(fileFullName);
        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;
        //上面一串if else 不好理解,不好修改,更不好看
        bmp.Save(ms, suffixName);
        byte[] arr = new byte[ms.Length]; ms.Position = 0;
        ms.Read(arr, 0, (int)ms.Length); ms.Close();
        return Convert.ToBase64String(arr);
    }
    catch (Exception ex)
    {
        return null;
    }
}

 

/// <summary>
/// 图片转Base64(优化后)
/// </summary>
/// <param name="fileFullName"></param>
/// <returns></returns>
public static string ImageToBase64(string fileFullName)
{
    try
    {
        var suffix = fileFullName.Substring(fileFullName.LastIndexOf('.') + 1).ToLower();
        Dictionary<string, ImageFormat> formatDic = new Dictionary<string, ImageFormat>();
        formatDic.Add("png", ImageFormat.Png);
        formatDic.Add("jpg", ImageFormat.Jpeg);
        formatDic.Add("jpeg", ImageFormat.Jpeg);
        formatDic.Add("bmp", ImageFormat.Bmp);
        formatDic.Add("gif", ImageFormat.Gif);//将文件的扩展名和图片格式暂时存在字典中
        ImageFormat suffixName = formatDic.ContainsKey(suffix)? formatDic[suffix]: ImageFormat.Jpeg;//根据扩展名,获取图片格式。未知的图片格式,默认Jpeg
        byte[] imageContentBytes; 
        using (MemoryStream ms = new MemoryStream())//使用using语法糖,防止忘记释放资源
        {
            using(Bitmap bmp = new Bitmap(fileFullName))
            {
                bmp.Save(ms, suffixName);
            }
            imageContentBytes = ms.ToArray();
        }
        return Convert.ToBase64String(imageContentBytes);
    }
    catch
    {
        return null;
    }
}