色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

          二維碼 QR碼編碼原理詳解

          作者: 時間:2013-01-01 來源:網(wǎng)絡 收藏

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

          11.jpg

          把上面的完整序列填充到相應規(guī)格的碼矩陣的區(qū)域中

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

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

          7. 格式和版本信息:生成格式和版本信息放入相應區(qū)域內(nèi)。

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

          版本信息共18位,6X3的矩陣,其中6位時數(shù)據(jù)為,如版本號8,數(shù)據(jù)位的信息時 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 二維

          評論


          相關推薦

          技術專區(qū)

          關閉