C# 網絡圖片轉Base64字符串

參考: 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;
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章