zoukankan      html  css  js  c++  java
  • C#中BASE64和图片相互转换

    //图片 转为    base64编码的文本
            private void button1_Click(object sender, EventArgs e)
            {
                OpenFileDialog dlg = new OpenFileDialog();
                dlg.Multiselect = true;
                dlg.Title = "选择要转换的图片";
                dlg.Filter = "Image files (*.jpg;*.bmp;*.gif;*.png)|*.jpg*.jpeg;*.gif;*.bmp|AllFiles (*.*)|*.*";
                if (DialogResult.OK == dlg.ShowDialog())
                {
                    for (int i = 0; i < dlg.FileNames.Length; i++)
                    {
                        ImgToBase64String(dlg.FileNames[i].ToString());
                    }
                }
            }
            //图片 转为    base64编码的文本
            private void ImgToBase64String(string Imagefilename)
            {
                try
                {
                    Bitmap bmp = new Bitmap(Imagefilename);
                    this.pictureBox1.Image = bmp;
                    FileStream fs = new FileStream(Imagefilename + ".txt", FileMode.Create);
                    StreamWriter sw = new StreamWriter(fs);

                    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();
                    String strbaser64 = Convert.ToBase64String(arr);
                    sw.Write(strbaser64);

                    sw.Close();
                    fs.Close();
                   // MessageBox.Show("转换成功!");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("ImgToBase64String 转换失败 Exception:" + ex.Message);
                }
            }

            //base64编码的文本 转为    图片
            private void button2_Click(object sender, EventArgs e)
            {
                OpenFileDialog dlg = new OpenFileDialog();
                dlg.Multiselect = true;
                dlg.Title = "选择要转换的base64编码的文本";
                dlg.Filter = "txt files|*.txt";
                if (DialogResult.OK == dlg.ShowDialog())
                {
                    for (int i = 0; i < dlg.FileNames.Length; i++)
                    {
                        Base64StringToImage(dlg.FileNames[i].ToString());
                    }
                    
                }
            }
            //base64编码的文本 转为    图片
            private void Base64StringToImage(string txtFileName)
            {
                try
                {
                    FileStream ifs = new FileStream(txtFileName, FileMode.Open, FileAccess.Read);
                    StreamReader sr = new StreamReader(ifs);

                    String inputStr = sr.ReadToEnd();
                    byte[] arr = Convert.FromBase64String(inputStr);
                    MemoryStream ms = new MemoryStream(arr);
                    Bitmap bmp = new Bitmap(ms);

                    //bmp.Save(txtFileName + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
                    //bmp.Save(txtFileName + ".bmp", ImageFormat.Bmp);
                    //bmp.Save(txtFileName + ".gif", ImageFormat.Gif);
                    //bmp.Save(txtFileName + ".png", ImageFormat.Png);
                    ms.Close();
                    sr.Close();
                    ifs.Close();
                    this.pictureBox2.Image = bmp;
                    if (File.Exists(txtFileName))
                    {
                        File.Delete(txtFileName);
                    }
                    //MessageBox.Show("转换成功!");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Base64StringToImage 转换失败 Exception:" + ex.Message);
                }
            }

  • 相关阅读:
    Leetcode Unique Binary Search Trees
    Leetcode Decode Ways
    Leetcode Range Sum Query 2D
    Leetcode Range Sum Query
    Leetcode Swap Nodes in Pairs
    Leetcode Rotate Image
    Leetcode Game of Life
    Leetcode Set Matrix Zeroes
    Leetcode Linked List Cycle II
    CF1321A
  • 原文地址:https://www.cnblogs.com/tiancai/p/5669867.html
Copyright © 2011-2022 走看看