C# base64编码的字符串与图片互转

        protected string ImgToBase64String(string Imagefilename)
        {
            try
            {
                Bitmap bmp = new Bitmap(Imagefilename);

                MemoryStream ms = new MemoryStream();
                bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                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;
            }
        }

        //threeebase64编码的字符串转为图片
        protected Bitmap Base64StringToImage(string base64Code)
        {
            try
            {
                string sPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
                if (sPath.Substring(sPath.Length - 1, 1) != "\")
                {
                    sPath += "\";
                }
                if (!Directory.Exists(sPath + "Temp"))
                {
                    Directory.CreateDirectory(sPath + "Temp");
                }

                string sFileName = sPath + "Temp\" + DateTime.Now.ToString("yyyyMMddHHmmssffff");

                byte[] arr = Convert.FromBase64String(base64Code);
                MemoryStream ms = new MemoryStream(arr);
                Bitmap bmp = new Bitmap(ms);

                string f1 = sFileName + ".jpg";
                string f2 = sFileName + ".bmp";
                string f3 = sFileName + ".gif";
                string f4 = sFileName + ".png";

                bmp.Save(sFileName + ".jpg", ImageFormat.Jpeg);
                bmp.Save(sFileName + ".bmp", ImageFormat.Bmp);
                bmp.Save(sFileName + ".gif", ImageFormat.Gif);
                bmp.Save(sFileName + ".png", ImageFormat.Png);
                ms.Close();

                #region 读取本地文件

                FileStream fs = new FileStream(f1, FileMode.Open, FileAccess.Read);
                BinaryReader br = new BinaryReader(fs);
                byte[] photo = br.ReadBytes((int)fs.Length);
                br.Close();
                fs.Close();

                Copy(photo);

                #endregion

                return bmp;
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
                return null;
            }
        }

        protected Bitmap Copy(byte[] arr)
        {
            try
            {
                string sPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
                if (sPath.Substring(sPath.Length - 1, 1) != "\")
                {
                    sPath += "\";
                }
                if (!Directory.Exists(sPath + "Temp\Temp"))
                {
                    Directory.CreateDirectory(sPath + "Temp\Temp");
                }

                string sFileName = sPath + "Temp\Temp\" + DateTime.Now.ToString("yyyyMMddHHmmssffff");
                
                MemoryStream ms = new MemoryStream(arr);
                Bitmap bmp = new Bitmap(ms);

                string f1 = sFileName + ".jpg";
                string f2 = sFileName + ".bmp";
                string f3 = sFileName + ".gif";
                string f4 = sFileName + ".png";

                bmp.Save(sFileName + ".jpg", ImageFormat.Jpeg);
                bmp.Save(sFileName + ".bmp", ImageFormat.Bmp);
                bmp.Save(sFileName + ".gif", ImageFormat.Gif);
                bmp.Save(sFileName + ".png", ImageFormat.Png);
                ms.Close();

                return bmp;
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
                return null;
            }
        }

  

原文地址:https://www.cnblogs.com/hofmann/p/8275294.html