新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 二維碼 QR碼編碼原理詳解

        二維碼 QR碼編碼原理詳解

        作者: 時間:2013-01-01 來源:網絡 收藏

        5.構造矩陣:將探測圖形、分隔符、定位圖形、校正圖形和碼字模塊放入矩陣中。

        11.jpg

        把上面的完整序列填充到相應規格的碼矩陣的區域中

        6. 掩摸:將掩摸圖形用于符號的區域,使得碼圖形中的深色和淺色(黑色和白色)區域能夠比率最優的分布。

        一個算法,不研究了,有興趣的同學可以繼續。

        7. 格式和版本信息:生成格式和版本信息放入相應區域內。

        版本7-40都包含了版本信息,沒有版本信息的全為0。碼上兩個位置包含了版本信息,它們是冗余的。

        版本信息共18位,6X3的矩陣,其中6位時數據為,如版本號8,數據位的信息時 001000,后面的12位是糾錯位。

        至此,二維碼的流程基本完成了,下面就來實踐一下吧,當然不用自己再去編寫上面的算法了,使用三方包zxing 就可以了。


        public static void encode(String content, String format, String filePath) {
        try {
        Hashtable hints = new Hashtable();//設置編碼類型
        hints.put(EncodeHintType.CHARACTER_SET, DEFAULT_ENCODING);
        //編碼
        BitMatrix bitMatrix = new CodeWriter().encode(content,
        BarcodeFormat._CODE, DEFAULT_IMAGE_WIDTH,
        DEFAULT_IMAGE_HEIGHT,hints);
        //輸出到文件,也可以輸出到流
        File file = new File(filePath);
        MatrixToImageWriter.writeToFile(bitMatrix, format, file);

        } catch (IOException e) {
        e.printStackTrace();
        } catch (WriterException e1) {
        e1.printStackTrace();
        }
        }

        解碼:

        BufferedImage image = ImageIO.read(file);//讀取文件
        LuminanceSource source = new BufferedImageLuminanceSource(image);
        BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(
        source));
        //解碼
        Result result = new MultiFormatReader().decode(bitmap);
        String resultStr = result.getText();
        System.out.println(resultStr);


        上一頁 1 2 下一頁

        關鍵詞: 詳解 原理 編碼 QR 二維

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 合山市| 东丽区| 南雄市| 宜春市| 项城市| 垦利县| 印江| 鸡泽县| 潼关县| 邵阳县| 石首市| 都江堰市| 临沂市| 招远市| 含山县| 青浦区| 蚌埠市| 宁国市| 普兰店市| 巴林右旗| 海城市| 石泉县| 类乌齐县| 南宫市| 成都市| 上犹县| 翁牛特旗| 惠水县| 肇源县| 丹寨县| 航空| 济阳县| 海原县| 衢州市| 资兴市| 阿克| 海兴县| 六安市| 鄄城县| 西充县| 黑水县|