C#中图片与BASE64码互相转换

来源:这里教程网 时间:2026-02-21 13:01:07 作者:

//图片 转为    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                 {
                    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 转换失败\nexception:" + 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                 {
                    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 转换失败\nexception:" + ex.message);
            }
        }

相关推荐

热文推荐