网址转化文二维码并识别

一、实现原理:将网址看做字符串后用二进制转化成0与1来表示,在用0表示黑色,1表示白色,再在绘图界面上将每一个黑白像素点扩大成小矩形绘制出来,得到上述图片。

二、代码

1、将网址转化为2位二进制存进数组中

public String[] StringtoBiarray(){
 
        String str = "https://bilibili.com";
        String []binaryStrar = new String [str.length()];
        // 取出单个的字符
        for (int i = 0; i < str.length(); i++) {
            //将不规则的字符串转为整数
            char strtoBiary=  str.charAt(i);
 
            //用int类型吸收char类型
            int biary=strtoBiary;
 
            //将整数转为二进制
            String binaryStr=Integer.toBinaryString(biary);
 
            //将二进制补为8位,前面补零
            while(binaryStr.length()<8) {
                binaryStr = 0 + binaryStr;
            }
            System.out.println(binaryStr);
            //将二进制码存储入数组
            binaryStrar[i]=binaryStr;
        }
        return binaryStrar;
    }

2、构造方法

public QRCodeUI(){
        setTitle("二维码图片");
        setSize(900,800);
        setDefaultCloseOperation(3);
        setVisible(true);
    }

3、主函数

public static void main(String[] args) {
        QRCodeUI qrCodeUI = new QRCodeUI();
        QRCode qrCode = new QRCode();
        //创建对象后,调用方法
        qrCodeUI.binaryStrArray = qrCode.StringtoBiarray();
    }

4、paint

public void paint(Graphics g) {
        super.paint(g);
        //绘制图形
        for (int i = 0; i < binaryStrArray.length; i++) {
 
            String str = binaryStrArray[i];
 
            for (int j = 0; j < str.length(); j++) {
               //注意i和j
                char c = str.charAt(j);
                if(c=='0'){
                    g.setColor(Color.white);
                }else{
                    g.setColor(Color.black);
                }
                g.fillRect(50+i*30,50+j*30,30,30);//每个小矩形位置变化,长宽30
            }
        }
 
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值