• 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;
                }
            }
    

      

  • 相关阅读:
    HDU 4868 Information Extraction(2014 多校联合第一场 H)
    Transformations 方块转换
    catalan 数——卡特兰数(转)
    算法分析与设计——矩阵连乘问题
    算法设计与分析——多边形游戏(DP)
    蓝桥杯算法训练 最大最小公倍数
    codeforces 518B. Tanya and Postcard
    并查集
    高精度的进制转换
    线段树(转)
  • 原文地址:https://www.cnblogs.com/hofmann/p/8275294.html
Copyright © 2020-2023  润新知