求助 模仿二维码生成代码改编BASE64解密生成图片

时间:2021-01-02 21:45:38
RT 小白求助 
lb.Image =  GetDimensionalCode(datainfo.value);

/// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="link"></param>
        /// <returns></returns>
        private Bitmap GetDimensionalCode(string link)
        {

            Bitmap bmp = null;

            try
            {

                QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();

                qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;

                qrCodeEncoder.QRCodeScale = 16;

                //int version = Convert.ToInt16(cboVersion.Text);

                qrCodeEncoder.QRCodeVersion = 0;

                qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;

                bmp = qrCodeEncoder.Encode(link,Encoding .UTF8);


            }

            catch (Exception ex)
            {

                //MessageBox.Show("Invalid version !");

            }
            Bitmap imgBit = new Bitmap(bmp, 155, 155);//旧
            //Bitmap imgBit = new Bitmap(bmp, 200, 200);
            return imgBit;
           
        }

这是一段生成二维码图片的代码  现在楼主想传过一段BASE64加密的字符串转化成图片 怎么写这个方法然后把图片返回给lb.Image  下面是在网上找到的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);
            }
        }

15 个解决方案

#1


楼主小白  有没有大神能帮忙一下 万分感谢

#2


没太明白你想要什么,我猜你是想要将二维码图片转成Base64string,然后可以再转回来吧。你是要一个将图片转成字符串的函数吧。下面的代码可以将你的二维码图片转成Base64String
System.Drawing.Bitmap bitmap = GetDimensionalCode(link);
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                {
                    bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                    byte[] imageBytes = ms.ToArray();
                    string base64String = Convert.ToBase64String(imageBytes);
                }

#3


引用 2 楼 Libby1984 的回复:
没太明白你想要什么,我猜你是想要将二维码图片转成Base64string,然后可以再转回来吧。你是要一个将图片转成字符串的函数吧。下面的代码可以将你的二维码图片转成Base64String
System.Drawing.Bitmap bitmap = GetDimensionalCode(link);
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                {
                    bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                    byte[] imageBytes = ms.ToArray();
                    string base64String = Convert.ToBase64String(imageBytes);
                }

不是这个意思 我的意思是我现在有一段字符串 然后把这个字符串通过BASE64转化成图片 然后传给lb.Image;  把下面的这个方法怎么修改能返回一个图片;

#4


如果不纠缠什么 base64,就是一个字符串,你所谓的“字符串转化为图片”是什么意思啊?

#5


引用 4 楼 sp1234 的回复:
如果不纠缠什么 base64,就是一个字符串,你所谓的“字符串转化为图片”是什么意思啊?

领导跟我说这串字符串是通过BASE64解密会转化为一张图片  字符串是这样的“iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAEF0lEQVR42u3dQW4DIRAEQP//08kb\r\nLENPA9VSTpacNdQeZoeFz5/IRfkYAgFaBGgRoEWAFqBFgBYBWgRoEaAFaBGgRYAWAVoEaAH6my/4\r\nfKJ/317P8gH78vp+/Xz39502v0ADDTTQQAMNNNA3gt4NaDWwX0H9OmFt19M2v0ADDTTQQAMNNNAv\r\ngl494asneHURuLvoSn9/2/wCDTTQQAMNNNBAA71/QFc3JqavJ93YABpooIEGGmiggQb6/qIwDbR9\r\ncVH7+AANNNBAAw000EAD/akf8NWNiGmg6UZVen6BBhpooIEGGmigXwDd/uDf52c1doD2OdBA+xxo\r\noIG+EfTp2f0S63SRl27UjM8n0EADDTTQQAMN9AGg00Vfe1E53Zg5vQgHGmiggQYaaKCBBnr+Qfvp\r\nReiv4726CF39e4EGGmiggQYaaKBfBN1WxKRf6kxv3pguAlfP727wQAMNNNBAAw000Cfuy9G+eKdt\r\nI5fVvy9dRE4XgUADDTTQQAMNNNA3gE4XYekJaduAfbrx0tYoAxpooIEGGmiggb4B9O4BTz/4nz4M\r\n/raDRYEGGmiggQYaaKBfBH1a0TR9A+/+f+mivK0RAzTQQAMNNNBAA/3Ceuj0g//0gN8GJn39QAMN\r\nNNBAAw000C+Anv68fYH8bpDTi5OuKwqBBhpooIEGGmigD2ys7G7MpBsx7RvHtN2gQAMNNNBAAw00\r\n0C+Arn/wftlmhbcdagQ00EADDTTQQAP9Auj0AvL2l2ini8jVoNONG6CBBhpooIEGGugXQK8Gf/pm\r\njKcdXp8ez+ufcgANNNBAAw000EAPPNhPF2nTRV/beD6/OAlooIEGGmiggQa6oLGSbhyki9z2Gz49\r\nP9OHCgENNNBAAw000EB7Dv0Xn8D2Rk1bo2j3DQ800EADDTTQQAN9I+jdD+7bis40kPR4p4tMoIEG\r\nGmiggQYa6BdBtxUJ7WBeO7w+3QgDGmiggQYaaKCBfhH09gfvZYe3pxtX04vDnisKgQYaaKCBBhpo\r\noAfAtd9g6cbNaTdM3A/QQAMNNNBAAw30g6CnGzdti4/ShxqlN6M8rrECNNBAAw000EADHVjgv/0H\r\nnLYAffh6b9ucEWiggQYaaKCBBvpE0NNFRftLqO0bmLcdogQ00EADDTTQQANtf+j9jZXpRkq6MdK2\r\nYfzuzRyBBhpooIEGGmigXwTd9pLm6UXedNE23cgBGmiggQYaaKCBBrr/4M3TNkdsu2Hivx9ooIEG\r\nGmiggQYa6OMPW28reqdvMKCBBhpooIEGGmig+zeamS7ipjckTxdxNmsEGmiggQYaaKCB/otP2GlF\r\nXtv/3w1y93gBDTTQQAMNNNBAvwBapClAC9AiQIsALQK0AC0CtAjQIkCLAC1AiwAtArQI0CJAy1P5\r\nBxzYf+05wSdMAAAAAElFTkSuQmCC”

#6


引用 2 楼 Libby1984 的回复:
没太明白你想要什么,我猜你是想要将二维码图片转成Base64string,然后可以再转回来吧。你是要一个将图片转成字符串的函数吧。下面的代码可以将你的二维码图片转成Base64String
System.Drawing.Bitmap bitmap = GetDimensionalCode(link);
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                {
                    bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                    byte[] imageBytes = ms.ToArray();
                    string base64String = Convert.ToBase64String(imageBytes);
                }

你自己贴出来的代码不是有吗?稍加修改就可以了
private void Base64StringToImage(string base64String)
        {
            try
            {
                //FileStream ifs = new FileStream(txtFileName, FileMode.Open, FileAccess.Read);  //去掉
               // StreamReader sr = new StreamReader(ifs);  // 去掉
 
                //String inputStr = sr.ReadToEnd(); //去掉
                byte[] arr = Convert.FromBase64String(base64String);  //这里就是你的base64String
                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);
            }
        }

#7


private void Base64StringToImage(string base64String)
        {
            try
            {
               // FileStream ifs = new FileStream(txtFileName, FileMode.Open, FileAccess.Read);
               // StreamReader sr = new StreamReader(ifs);
 
               // String inputStr = sr.ReadToEnd();
                byte[] arr = Convert.FromBase64String(base64String);  //这里就是你的base64String
                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);
            }
        }

#8


我的意思是我现在有base64加密后的字符串  然后转化成二维码  扫描二维码扫出来之后是一张图片

#9


引用 7 楼 Libby1984 的回复:
private void Base64StringToImage(string base64String)
        {
            try
            {
               // FileStream ifs = new FileStream(txtFileName, FileMode.Open, FileAccess.Read);
               // StreamReader sr = new StreamReader(ifs);
 
               // String inputStr = sr.ReadToEnd();
                byte[] arr = Convert.FromBase64String(base64String);  //这里就是你的base64String
                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);
            }
        }

我的意思是我现在手里有一段通过BASE64加密图片过的字符串 然后把字符串转化成二维码 扫描二维码能把图片扫出来

#10


引用 5 楼 qq_35128717 的回复:
Quote: 引用 4 楼 sp1234 的回复:

如果不纠缠什么 base64,就是一个字符串,你所谓的“字符串转化为图片”是什么意思啊?

领导跟我说这串字符串是通过BASE64解密会转化为一张图片  字符串是这样的“iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAEF0lEQVR42u3dQW4DIRAEQP//08kb\r\nLENPA9VSTpacNdQeZoeFz5/IRfkYAgFaBGgRoEWAFqBFgBYBWgRoEaAFaBGgRYAWAVoEaAH6my/4\r\nfKJ/317P8gH78vp+/Xz39502v0ADDTTQQAMNNNA3gt4NaDWwX0H9OmFt19M2v0ADDTTQQAMNNNAv\r\ngl494asneHURuLvoSn9/2/wCDTTQQAMNNNBAA71/QFc3JqavJ93YABpooIEGGmiggQb6/qIwDbR9\r\ncVH7+AANNNBAAw000EAD/akf8NWNiGmg6UZVen6BBhpooIEGGmigXwDd/uDf52c1doD2OdBA+xxo\r\noIG+EfTp2f0S63SRl27UjM8n0EADDTTQQAMN9AGg00Vfe1E53Zg5vQgHGmiggQYaaKCBBnr+Qfvp\r\nReiv4726CF39e4EGGmiggQYaaKBfBN1WxKRf6kxv3pguAlfP727wQAMNNNBAAw000Cfuy9G+eKdt\r\nI5fVvy9dRE4XgUADDTTQQAMNNNA3gE4XYekJaduAfbrx0tYoAxpooIEGGmiggb4B9O4BTz/4nz4M\r\n/raDRYEGGmiggQYaaKBfBH1a0TR9A+/+f+mivK0RAzTQQAMNNNBAA/3Ceuj0g//0gN8GJn39QAMN\r\nNNBAAw000C+Anv68fYH8bpDTi5OuKwqBBhpooIEGGmigD2ys7G7MpBsx7RvHtN2gQAMNNNBAAw00\r\n0C+Arn/wftlmhbcdagQ00EADDTTQQAP9Auj0AvL2l2ini8jVoNONG6CBBhpooIEGGugXQK8Gf/pm\r\njKcdXp8ez+ufcgANNNBAAw000EAPPNhPF2nTRV/beD6/OAlooIEGGmiggQa6oLGSbhyki9z2Gz49\r\nP9OHCgENNNBAAw000EB7Dv0Xn8D2Rk1bo2j3DQ800EADDTTQQAN9I+jdD+7bis40kPR4p4tMoIEG\r\nGmiggQYa6BdBtxUJ7WBeO7w+3QgDGmiggQYaaKCBfhH09gfvZYe3pxtX04vDnisKgQYaaKCBBhpo\r\noAfAtd9g6cbNaTdM3A/QQAMNNNBAAw30g6CnGzdti4/ShxqlN6M8rrECNNBAAw000EADHVjgv/0H\r\nnLYAffh6b9ucEWiggQYaaKCBBvpE0NNFRftLqO0bmLcdogQ00EADDTTQQANtf+j9jZXpRkq6MdK2\r\nYfzuzRyBBhpooIEGGmigXwTd9pLm6UXedNE23cgBGmiggQYaaKCBBrr/4M3TNkdsu2Hivx9ooIEG\r\nGmiggQYa6OMPW28reqdvMKCBBhpooIEGGmig+zeamS7ipjckTxdxNmsEGmiggQYaaKCB/otP2GlF\r\nXtv/3w1y93gBDTTQQAMNNNBAvwBapClAC9AiQIsALQK0AC0CtAjQIkCLAC1AiwAtArQI0CJAy1P5\r\nBxzYf+05wSdMAAAAAElFTkSuQmCC”


那就是你误导了自己业务到了别人。

领导告诉你的是,这个字符串代表的是一个 byte[ ] 数据。

最关键的一点是能够“落地”的那个概念。如果这个概念你说不出来,前边的虚幻的词儿就不能落地。

#11


引用 7 楼 Libby1984 的回复:
private void Base64StringToImage(string base64String)
        {
            try
            {
               // FileStream ifs = new FileStream(txtFileName, FileMode.Open, FileAccess.Read);
               // StreamReader sr = new StreamReader(ifs);
 
               // String inputStr = sr.ReadToEnd();
                byte[] arr = Convert.FromBase64String(base64String);  //这里就是你的base64String
                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);
            }
        }

大哥 如果您会弄的话帮我弄一下吧  万分感谢 要带返回值的  返回二维码图片 

#12


引用 10 楼 sp1234 的回复:
Quote: 引用 5 楼 qq_35128717 的回复:

Quote: 引用 4 楼 sp1234 的回复:

如果不纠缠什么 base64,就是一个字符串,你所谓的“字符串转化为图片”是什么意思啊?

领导跟我说这串字符串是通过BASE64解密会转化为一张图片  字符串是这样的“iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAEF0lEQVR42u3dQW4DIRAEQP//08kb\r\nLENPA9VSTpacNdQeZoeFz5/IRfkYAgFaBGgRoEWAFqBFgBYBWgRoEaAFaBGgRYAWAVoEaAH6my/4\r\nfKJ/317P8gH78vp+/Xz39502v0ADDTTQQAMNNNA3gt4NaDWwX0H9OmFt19M2v0ADDTTQQAMNNNAv\r\ngl494asneHURuLvoSn9/2/wCDTTQQAMNNNBAA71/QFc3JqavJ93YABpooIEGGmiggQb6/qIwDbR9\r\ncVH7+AANNNBAAw000EAD/akf8NWNiGmg6UZVen6BBhpooIEGGmigXwDd/uDf52c1doD2OdBA+xxo\r\noIG+EfTp2f0S63SRl27UjM8n0EADDTTQQAMN9AGg00Vfe1E53Zg5vQgHGmiggQYaaKCBBnr+Qfvp\r\nReiv4726CF39e4EGGmiggQYaaKBfBN1WxKRf6kxv3pguAlfP727wQAMNNNBAAw000Cfuy9G+eKdt\r\nI5fVvy9dRE4XgUADDTTQQAMNNNA3gE4XYekJaduAfbrx0tYoAxpooIEGGmiggb4B9O4BTz/4nz4M\r\n/raDRYEGGmiggQYaaKBfBH1a0TR9A+/+f+mivK0RAzTQQAMNNNBAA/3Ceuj0g//0gN8GJn39QAMN\r\nNNBAAw000C+Anv68fYH8bpDTi5OuKwqBBhpooIEGGmigD2ys7G7MpBsx7RvHtN2gQAMNNNBAAw00\r\n0C+Arn/wftlmhbcdagQ00EADDTTQQAP9Auj0AvL2l2ini8jVoNONG6CBBhpooIEGGugXQK8Gf/pm\r\njKcdXp8ez+ufcgANNNBAAw000EAPPNhPF2nTRV/beD6/OAlooIEGGmiggQa6oLGSbhyki9z2Gz49\r\nP9OHCgENNNBAAw000EB7Dv0Xn8D2Rk1bo2j3DQ800EADDTTQQAN9I+jdD+7bis40kPR4p4tMoIEG\r\nGmiggQYa6BdBtxUJ7WBeO7w+3QgDGmiggQYaaKCBfhH09gfvZYe3pxtX04vDnisKgQYaaKCBBhpo\r\noAfAtd9g6cbNaTdM3A/QQAMNNNBAAw30g6CnGzdti4/ShxqlN6M8rrECNNBAAw000EADHVjgv/0H\r\nnLYAffh6b9ucEWiggQYaaKCBBvpE0NNFRftLqO0bmLcdogQ00EADDTTQQANtf+j9jZXpRkq6MdK2\r\nYfzuzRyBBhpooIEGGmigXwTd9pLm6UXedNE23cgBGmiggQYaaKCBBrr/4M3TNkdsu2Hivx9ooIEG\r\nGmiggQYa6OMPW28reqdvMKCBBhpooIEGGmig+zeamS7ipjckTxdxNmsEGmiggQYaaKCB/otP2GlF\r\nXtv/3w1y93gBDTTQQAMNNNBAvwBapClAC9AiQIsALQK0AC0CtAjQIkCLAC1AiwAtArQI0CJAy1P5\r\nBxzYf+05wSdMAAAAAElFTkSuQmCC”


那就是你误导了自己业务到了别人。

领导告诉你的是,这个字符串代表的是一个 byte[ ] 数据。

最关键的一点是能够“落地”的那个概念。如果这个概念你说不出来,前边的虚幻的词儿就不能落地。

我还是个菜鸟 我不知道什么是落地啊 他就这个跟我说的 您能帮我改一下代码吗?通过这个字符串生成一个二维码 扫描二维码把解密后的图片扫出来

#13


你如果得到了一个 byte[ ] 数组,那么最笨的办法,可以把它保存到文件里,然后重新使用 Image 对象加载图片文件。不通过文件流则就通过 MemoryStream 对象从内存流中加载图片内容。

这跟抄来什么“二维码生成代码”那一通误导没有关系了。而且这里就是理解到你有一个 byte[ ] 数据结构,已经是图片的二进制数据,这是关键,根据这个这就能到你贴的第二段代码中去找那3、4行恰好是对 byte[ ] 处理的代码。

唉。

#14


引用 9 楼 qq_35128717 的回复:
Quote: 引用 7 楼 Libby1984 的回复:

private void Base64StringToImage(string base64String)
        {
            try
            {
               // FileStream ifs = new FileStream(txtFileName, FileMode.Open, FileAccess.Read);
               // StreamReader sr = new StreamReader(ifs);
 
               // String inputStr = sr.ReadToEnd();
                byte[] arr = Convert.FromBase64String(base64String);  //这里就是你的base64String
                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);
            }
        }

我的意思是我现在手里有一段通过BASE64加密图片过的字符串 然后把字符串转化成二维码 扫描二维码能把图片扫出来

无语了,你的需求一直都表达不清楚。你这个根本实现不了,除非相机扫码程序是你自己写的。现在的扫码就只是将二维码还原成生成二维码的字符串。要实现你的功能,得你自己写一个扫码程序放到扫码设备里面。

#15


引用 14 楼 Libby1984 的回复:
Quote: 引用 9 楼 qq_35128717 的回复:

Quote: 引用 7 楼 Libby1984 的回复:

private void Base64StringToImage(string base64String)
        {
            try
            {
               // FileStream ifs = new FileStream(txtFileName, FileMode.Open, FileAccess.Read);
               // StreamReader sr = new StreamReader(ifs);
 
               // String inputStr = sr.ReadToEnd();
                byte[] arr = Convert.FromBase64String(base64String);  //这里就是你的base64String
                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);
            }
        }

我的意思是我现在手里有一段通过BASE64加密图片过的字符串 然后把字符串转化成二维码 扫描二维码能把图片扫出来

无语了,你的需求一直都表达不清楚。你这个根本实现不了,除非相机扫码程序是你自己写的。现在的扫码就只是将二维码还原成生成二维码的字符串。要实现你的功能,得你自己写一个扫码程序放到扫码设备里面。

我现在用你改的这个代码稍微改了改实现了我要的功能  我把它写到程序里试验一下

#1


楼主小白  有没有大神能帮忙一下 万分感谢

#2


没太明白你想要什么,我猜你是想要将二维码图片转成Base64string,然后可以再转回来吧。你是要一个将图片转成字符串的函数吧。下面的代码可以将你的二维码图片转成Base64String
System.Drawing.Bitmap bitmap = GetDimensionalCode(link);
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                {
                    bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                    byte[] imageBytes = ms.ToArray();
                    string base64String = Convert.ToBase64String(imageBytes);
                }

#3


引用 2 楼 Libby1984 的回复:
没太明白你想要什么,我猜你是想要将二维码图片转成Base64string,然后可以再转回来吧。你是要一个将图片转成字符串的函数吧。下面的代码可以将你的二维码图片转成Base64String
System.Drawing.Bitmap bitmap = GetDimensionalCode(link);
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                {
                    bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                    byte[] imageBytes = ms.ToArray();
                    string base64String = Convert.ToBase64String(imageBytes);
                }

不是这个意思 我的意思是我现在有一段字符串 然后把这个字符串通过BASE64转化成图片 然后传给lb.Image;  把下面的这个方法怎么修改能返回一个图片;

#4


如果不纠缠什么 base64,就是一个字符串,你所谓的“字符串转化为图片”是什么意思啊?

#5


引用 4 楼 sp1234 的回复:
如果不纠缠什么 base64,就是一个字符串,你所谓的“字符串转化为图片”是什么意思啊?

领导跟我说这串字符串是通过BASE64解密会转化为一张图片  字符串是这样的“iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAEF0lEQVR42u3dQW4DIRAEQP//08kb\r\nLENPA9VSTpacNdQeZoeFz5/IRfkYAgFaBGgRoEWAFqBFgBYBWgRoEaAFaBGgRYAWAVoEaAH6my/4\r\nfKJ/317P8gH78vp+/Xz39502v0ADDTTQQAMNNNA3gt4NaDWwX0H9OmFt19M2v0ADDTTQQAMNNNAv\r\ngl494asneHURuLvoSn9/2/wCDTTQQAMNNNBAA71/QFc3JqavJ93YABpooIEGGmiggQb6/qIwDbR9\r\ncVH7+AANNNBAAw000EAD/akf8NWNiGmg6UZVen6BBhpooIEGGmigXwDd/uDf52c1doD2OdBA+xxo\r\noIG+EfTp2f0S63SRl27UjM8n0EADDTTQQAMN9AGg00Vfe1E53Zg5vQgHGmiggQYaaKCBBnr+Qfvp\r\nReiv4726CF39e4EGGmiggQYaaKBfBN1WxKRf6kxv3pguAlfP727wQAMNNNBAAw000Cfuy9G+eKdt\r\nI5fVvy9dRE4XgUADDTTQQAMNNNA3gE4XYekJaduAfbrx0tYoAxpooIEGGmiggb4B9O4BTz/4nz4M\r\n/raDRYEGGmiggQYaaKBfBH1a0TR9A+/+f+mivK0RAzTQQAMNNNBAA/3Ceuj0g//0gN8GJn39QAMN\r\nNNBAAw000C+Anv68fYH8bpDTi5OuKwqBBhpooIEGGmigD2ys7G7MpBsx7RvHtN2gQAMNNNBAAw00\r\n0C+Arn/wftlmhbcdagQ00EADDTTQQAP9Auj0AvL2l2ini8jVoNONG6CBBhpooIEGGugXQK8Gf/pm\r\njKcdXp8ez+ufcgANNNBAAw000EAPPNhPF2nTRV/beD6/OAlooIEGGmiggQa6oLGSbhyki9z2Gz49\r\nP9OHCgENNNBAAw000EB7Dv0Xn8D2Rk1bo2j3DQ800EADDTTQQAN9I+jdD+7bis40kPR4p4tMoIEG\r\nGmiggQYa6BdBtxUJ7WBeO7w+3QgDGmiggQYaaKCBfhH09gfvZYe3pxtX04vDnisKgQYaaKCBBhpo\r\noAfAtd9g6cbNaTdM3A/QQAMNNNBAAw30g6CnGzdti4/ShxqlN6M8rrECNNBAAw000EADHVjgv/0H\r\nnLYAffh6b9ucEWiggQYaaKCBBvpE0NNFRftLqO0bmLcdogQ00EADDTTQQANtf+j9jZXpRkq6MdK2\r\nYfzuzRyBBhpooIEGGmigXwTd9pLm6UXedNE23cgBGmiggQYaaKCBBrr/4M3TNkdsu2Hivx9ooIEG\r\nGmiggQYa6OMPW28reqdvMKCBBhpooIEGGmig+zeamS7ipjckTxdxNmsEGmiggQYaaKCB/otP2GlF\r\nXtv/3w1y93gBDTTQQAMNNNBAvwBapClAC9AiQIsALQK0AC0CtAjQIkCLAC1AiwAtArQI0CJAy1P5\r\nBxzYf+05wSdMAAAAAElFTkSuQmCC”

#6


引用 2 楼 Libby1984 的回复:
没太明白你想要什么,我猜你是想要将二维码图片转成Base64string,然后可以再转回来吧。你是要一个将图片转成字符串的函数吧。下面的代码可以将你的二维码图片转成Base64String
System.Drawing.Bitmap bitmap = GetDimensionalCode(link);
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                {
                    bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                    byte[] imageBytes = ms.ToArray();
                    string base64String = Convert.ToBase64String(imageBytes);
                }

你自己贴出来的代码不是有吗?稍加修改就可以了
private void Base64StringToImage(string base64String)
        {
            try
            {
                //FileStream ifs = new FileStream(txtFileName, FileMode.Open, FileAccess.Read);  //去掉
               // StreamReader sr = new StreamReader(ifs);  // 去掉
 
                //String inputStr = sr.ReadToEnd(); //去掉
                byte[] arr = Convert.FromBase64String(base64String);  //这里就是你的base64String
                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);
            }
        }

#7


private void Base64StringToImage(string base64String)
        {
            try
            {
               // FileStream ifs = new FileStream(txtFileName, FileMode.Open, FileAccess.Read);
               // StreamReader sr = new StreamReader(ifs);
 
               // String inputStr = sr.ReadToEnd();
                byte[] arr = Convert.FromBase64String(base64String);  //这里就是你的base64String
                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);
            }
        }

#8


我的意思是我现在有base64加密后的字符串  然后转化成二维码  扫描二维码扫出来之后是一张图片

#9


引用 7 楼 Libby1984 的回复:
private void Base64StringToImage(string base64String)
        {
            try
            {
               // FileStream ifs = new FileStream(txtFileName, FileMode.Open, FileAccess.Read);
               // StreamReader sr = new StreamReader(ifs);
 
               // String inputStr = sr.ReadToEnd();
                byte[] arr = Convert.FromBase64String(base64String);  //这里就是你的base64String
                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);
            }
        }

我的意思是我现在手里有一段通过BASE64加密图片过的字符串 然后把字符串转化成二维码 扫描二维码能把图片扫出来

#10


引用 5 楼 qq_35128717 的回复:
Quote: 引用 4 楼 sp1234 的回复:

如果不纠缠什么 base64,就是一个字符串,你所谓的“字符串转化为图片”是什么意思啊?

领导跟我说这串字符串是通过BASE64解密会转化为一张图片  字符串是这样的“iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAEF0lEQVR42u3dQW4DIRAEQP//08kb\r\nLENPA9VSTpacNdQeZoeFz5/IRfkYAgFaBGgRoEWAFqBFgBYBWgRoEaAFaBGgRYAWAVoEaAH6my/4\r\nfKJ/317P8gH78vp+/Xz39502v0ADDTTQQAMNNNA3gt4NaDWwX0H9OmFt19M2v0ADDTTQQAMNNNAv\r\ngl494asneHURuLvoSn9/2/wCDTTQQAMNNNBAA71/QFc3JqavJ93YABpooIEGGmiggQb6/qIwDbR9\r\ncVH7+AANNNBAAw000EAD/akf8NWNiGmg6UZVen6BBhpooIEGGmigXwDd/uDf52c1doD2OdBA+xxo\r\noIG+EfTp2f0S63SRl27UjM8n0EADDTTQQAMN9AGg00Vfe1E53Zg5vQgHGmiggQYaaKCBBnr+Qfvp\r\nReiv4726CF39e4EGGmiggQYaaKBfBN1WxKRf6kxv3pguAlfP727wQAMNNNBAAw000Cfuy9G+eKdt\r\nI5fVvy9dRE4XgUADDTTQQAMNNNA3gE4XYekJaduAfbrx0tYoAxpooIEGGmiggb4B9O4BTz/4nz4M\r\n/raDRYEGGmiggQYaaKBfBH1a0TR9A+/+f+mivK0RAzTQQAMNNNBAA/3Ceuj0g//0gN8GJn39QAMN\r\nNNBAAw000C+Anv68fYH8bpDTi5OuKwqBBhpooIEGGmigD2ys7G7MpBsx7RvHtN2gQAMNNNBAAw00\r\n0C+Arn/wftlmhbcdagQ00EADDTTQQAP9Auj0AvL2l2ini8jVoNONG6CBBhpooIEGGugXQK8Gf/pm\r\njKcdXp8ez+ufcgANNNBAAw000EAPPNhPF2nTRV/beD6/OAlooIEGGmiggQa6oLGSbhyki9z2Gz49\r\nP9OHCgENNNBAAw000EB7Dv0Xn8D2Rk1bo2j3DQ800EADDTTQQAN9I+jdD+7bis40kPR4p4tMoIEG\r\nGmiggQYa6BdBtxUJ7WBeO7w+3QgDGmiggQYaaKCBfhH09gfvZYe3pxtX04vDnisKgQYaaKCBBhpo\r\noAfAtd9g6cbNaTdM3A/QQAMNNNBAAw30g6CnGzdti4/ShxqlN6M8rrECNNBAAw000EADHVjgv/0H\r\nnLYAffh6b9ucEWiggQYaaKCBBvpE0NNFRftLqO0bmLcdogQ00EADDTTQQANtf+j9jZXpRkq6MdK2\r\nYfzuzRyBBhpooIEGGmigXwTd9pLm6UXedNE23cgBGmiggQYaaKCBBrr/4M3TNkdsu2Hivx9ooIEG\r\nGmiggQYa6OMPW28reqdvMKCBBhpooIEGGmig+zeamS7ipjckTxdxNmsEGmiggQYaaKCB/otP2GlF\r\nXtv/3w1y93gBDTTQQAMNNNBAvwBapClAC9AiQIsALQK0AC0CtAjQIkCLAC1AiwAtArQI0CJAy1P5\r\nBxzYf+05wSdMAAAAAElFTkSuQmCC”


那就是你误导了自己业务到了别人。

领导告诉你的是,这个字符串代表的是一个 byte[ ] 数据。

最关键的一点是能够“落地”的那个概念。如果这个概念你说不出来,前边的虚幻的词儿就不能落地。

#11


引用 7 楼 Libby1984 的回复:
private void Base64StringToImage(string base64String)
        {
            try
            {
               // FileStream ifs = new FileStream(txtFileName, FileMode.Open, FileAccess.Read);
               // StreamReader sr = new StreamReader(ifs);
 
               // String inputStr = sr.ReadToEnd();
                byte[] arr = Convert.FromBase64String(base64String);  //这里就是你的base64String
                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);
            }
        }

大哥 如果您会弄的话帮我弄一下吧  万分感谢 要带返回值的  返回二维码图片 

#12


引用 10 楼 sp1234 的回复:
Quote: 引用 5 楼 qq_35128717 的回复:

Quote: 引用 4 楼 sp1234 的回复:

如果不纠缠什么 base64,就是一个字符串,你所谓的“字符串转化为图片”是什么意思啊?

领导跟我说这串字符串是通过BASE64解密会转化为一张图片  字符串是这样的“iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAEF0lEQVR42u3dQW4DIRAEQP//08kb\r\nLENPA9VSTpacNdQeZoeFz5/IRfkYAgFaBGgRoEWAFqBFgBYBWgRoEaAFaBGgRYAWAVoEaAH6my/4\r\nfKJ/317P8gH78vp+/Xz39502v0ADDTTQQAMNNNA3gt4NaDWwX0H9OmFt19M2v0ADDTTQQAMNNNAv\r\ngl494asneHURuLvoSn9/2/wCDTTQQAMNNNBAA71/QFc3JqavJ93YABpooIEGGmiggQb6/qIwDbR9\r\ncVH7+AANNNBAAw000EAD/akf8NWNiGmg6UZVen6BBhpooIEGGmigXwDd/uDf52c1doD2OdBA+xxo\r\noIG+EfTp2f0S63SRl27UjM8n0EADDTTQQAMN9AGg00Vfe1E53Zg5vQgHGmiggQYaaKCBBnr+Qfvp\r\nReiv4726CF39e4EGGmiggQYaaKBfBN1WxKRf6kxv3pguAlfP727wQAMNNNBAAw000Cfuy9G+eKdt\r\nI5fVvy9dRE4XgUADDTTQQAMNNNA3gE4XYekJaduAfbrx0tYoAxpooIEGGmiggb4B9O4BTz/4nz4M\r\n/raDRYEGGmiggQYaaKBfBH1a0TR9A+/+f+mivK0RAzTQQAMNNNBAA/3Ceuj0g//0gN8GJn39QAMN\r\nNNBAAw000C+Anv68fYH8bpDTi5OuKwqBBhpooIEGGmigD2ys7G7MpBsx7RvHtN2gQAMNNNBAAw00\r\n0C+Arn/wftlmhbcdagQ00EADDTTQQAP9Auj0AvL2l2ini8jVoNONG6CBBhpooIEGGugXQK8Gf/pm\r\njKcdXp8ez+ufcgANNNBAAw000EAPPNhPF2nTRV/beD6/OAlooIEGGmiggQa6oLGSbhyki9z2Gz49\r\nP9OHCgENNNBAAw000EB7Dv0Xn8D2Rk1bo2j3DQ800EADDTTQQAN9I+jdD+7bis40kPR4p4tMoIEG\r\nGmiggQYa6BdBtxUJ7WBeO7w+3QgDGmiggQYaaKCBfhH09gfvZYe3pxtX04vDnisKgQYaaKCBBhpo\r\noAfAtd9g6cbNaTdM3A/QQAMNNNBAAw30g6CnGzdti4/ShxqlN6M8rrECNNBAAw000EADHVjgv/0H\r\nnLYAffh6b9ucEWiggQYaaKCBBvpE0NNFRftLqO0bmLcdogQ00EADDTTQQANtf+j9jZXpRkq6MdK2\r\nYfzuzRyBBhpooIEGGmigXwTd9pLm6UXedNE23cgBGmiggQYaaKCBBrr/4M3TNkdsu2Hivx9ooIEG\r\nGmiggQYa6OMPW28reqdvMKCBBhpooIEGGmig+zeamS7ipjckTxdxNmsEGmiggQYaaKCB/otP2GlF\r\nXtv/3w1y93gBDTTQQAMNNNBAvwBapClAC9AiQIsALQK0AC0CtAjQIkCLAC1AiwAtArQI0CJAy1P5\r\nBxzYf+05wSdMAAAAAElFTkSuQmCC”


那就是你误导了自己业务到了别人。

领导告诉你的是,这个字符串代表的是一个 byte[ ] 数据。

最关键的一点是能够“落地”的那个概念。如果这个概念你说不出来,前边的虚幻的词儿就不能落地。

我还是个菜鸟 我不知道什么是落地啊 他就这个跟我说的 您能帮我改一下代码吗?通过这个字符串生成一个二维码 扫描二维码把解密后的图片扫出来

#13


你如果得到了一个 byte[ ] 数组,那么最笨的办法,可以把它保存到文件里,然后重新使用 Image 对象加载图片文件。不通过文件流则就通过 MemoryStream 对象从内存流中加载图片内容。

这跟抄来什么“二维码生成代码”那一通误导没有关系了。而且这里就是理解到你有一个 byte[ ] 数据结构,已经是图片的二进制数据,这是关键,根据这个这就能到你贴的第二段代码中去找那3、4行恰好是对 byte[ ] 处理的代码。

唉。

#14


引用 9 楼 qq_35128717 的回复:
Quote: 引用 7 楼 Libby1984 的回复:

private void Base64StringToImage(string base64String)
        {
            try
            {
               // FileStream ifs = new FileStream(txtFileName, FileMode.Open, FileAccess.Read);
               // StreamReader sr = new StreamReader(ifs);
 
               // String inputStr = sr.ReadToEnd();
                byte[] arr = Convert.FromBase64String(base64String);  //这里就是你的base64String
                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);
            }
        }

我的意思是我现在手里有一段通过BASE64加密图片过的字符串 然后把字符串转化成二维码 扫描二维码能把图片扫出来

无语了,你的需求一直都表达不清楚。你这个根本实现不了,除非相机扫码程序是你自己写的。现在的扫码就只是将二维码还原成生成二维码的字符串。要实现你的功能,得你自己写一个扫码程序放到扫码设备里面。

#15


引用 14 楼 Libby1984 的回复:
Quote: 引用 9 楼 qq_35128717 的回复:

Quote: 引用 7 楼 Libby1984 的回复:

private void Base64StringToImage(string base64String)
        {
            try
            {
               // FileStream ifs = new FileStream(txtFileName, FileMode.Open, FileAccess.Read);
               // StreamReader sr = new StreamReader(ifs);
 
               // String inputStr = sr.ReadToEnd();
                byte[] arr = Convert.FromBase64String(base64String);  //这里就是你的base64String
                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);
            }
        }

我的意思是我现在手里有一段通过BASE64加密图片过的字符串 然后把字符串转化成二维码 扫描二维码能把图片扫出来

无语了,你的需求一直都表达不清楚。你这个根本实现不了,除非相机扫码程序是你自己写的。现在的扫码就只是将二维码还原成生成二维码的字符串。要实现你的功能,得你自己写一个扫码程序放到扫码设备里面。

我现在用你改的这个代码稍微改了改实现了我要的功能  我把它写到程序里试验一下