画像URLからBase64文字列を作成

public static class ImageURLToBase64
{
    /// <summary>
    /// 画像URLからBase64文字列を取得
    /// </summary>
    /// <param name="strImgeURL"></param>
    /// <returns></returns>
    public static async Task<string> GetBase64(string strImgeURL)
    {
        string strResult = string.Empty;
        byte[] bs = null;

        using (WebClient objWebClient = new WebClient())
        {
            bs = await objWebClient.DownloadDataTaskAsync(strImgeURL);
        }

        if(bs != null)
        {
            strResult = Convert.ToBase64String(bs);

            string strType = GetImageTypeFromByte(bs);
            if (strType != string.Empty)
            {
                strResult = "data:image/" + strType + ";base64," + strResult;
            }
        }

        return strResult;
    }

    /// <summary>
    /// バイト配列を読んで画像種別を判定
    /// </summary>
    /// <param name="arrayBytes"></param>
    /// <returns></returns>
    private static string GetImageTypeFromByte(byte[] arrayBytes)
    {
        Dictionary<string, string>  ImageTypes = new Dictionary<string, string>();
        ImageTypes.Add("FFD8", "jpg");
        ImageTypes.Add("424D", "bmp");
        ImageTypes.Add("474946", "gif");
        ImageTypes.Add("89504E470D0A1A0A", "png");

        string strBytes = BitConverter.ToString(arrayBytes).Replace("-", string.Empty);

        KeyValuePair<string,string> SelectImageType = ImageTypes.Where(x => strBytes.ToLower().StartsWith(x.Key.ToLower())).First();

        return SelectImageType.Value.ToString().ToLower();
    }
}