zoukankan      html  css  js  c++  java
  • Image与Base64String的互转换

         public Image Base64ToImage(string base64String)
            {
                // Convert Base64 String to byte[]
                byte[] imageBytes = Convert.FromBase64String(base64String);
                MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
    
                // Convert byte[] to Image
                ms.Write(imageBytes, 0, imageBytes.Length);
                Image image = Image.FromStream(ms, true);
                return image;
            }
    
    
            public string CreateImgToBase64(string imagePath)
            {
                Bitmap bmp = (Bitmap)Image.FromFile(imagePath);
                MemoryStream stream = new MemoryStream();
                bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
                stream.Position = 0;
                byte[] data = new byte[stream.Length];
                stream.Read(data, 0, (int)stream.Length);
                stream.Close();
    
                string base64String = string.Empty;
                try
                {
                    base64String = System.Convert.ToBase64String(data, 0, data.Length);
                }
                catch
                {
                    throw;
                }
    
                StreamWriter outFile;
    
                try
                {
                    outFile = new StreamWriter(string.Concat(imagePath, ".txt"), false, Encoding.ASCII);
                    outFile.Write(base64String);
                    outFile.Close();
    
                    return base64String;
                }
                catch
                {
                    throw;
                }
    
                bmp.Dispose();
            }
    
            public void CreateBase64StrToImage(string filePath)
            {
                StreamReader reader = new StreamReader(filePath);
                string str = reader.ReadToEnd();
    
                byte[] bitmapData = new byte[str.Length];
                bitmapData = Convert.FromBase64String(FixBase64ForImage(str));
                MemoryStream streamBitmap = new MemoryStream(bitmapData);
    
                Bitmap bitImage = new Bitmap((Bitmap)Image.FromStream(streamBitmap));
                bitImage.Save(filePath.Substring(0, filePath.Length - 4), System.Drawing.Imaging.ImageFormat.Jpeg);
                bitImage.Dispose();
            }
    
            static string FixBase64ForImage(string image)
            {
                StringBuilder sbText =
                    new StringBuilder(image, image.Length);
    
                sbText.Replace("
    ", string.Empty);
                sbText.Replace(" ", string.Empty);
    
                return sbText.ToString();
            }
  • 相关阅读:
    20201015-3 每周例行报告
    20201008-1 每周例行报告
    20200924-1 每周例行报告
    20200924-3 单元测试,结对
    刷题-Leetcode-120. 三角形最小路径和
    刷题-Leetcode-1025. 除数博弈
    刷题-Leetcode-217. 存在重复元素
    刷题-Leetcode-24.两两交换链表中的节点
    刷题-AcWing-104. 货仓选址
    ARP报文抓包解析实验报告
  • 原文地址:https://www.cnblogs.com/ShaYeBlog/p/4199847.html
Copyright © 2011-2022 走看看