乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      java生成二維碼的三個(gè)工具

       且看且珍惜 2014-11-21
      1:
      使用SwetakeQRCode在Java項(xiàng)目中生成二維碼
      http:///qr/ 下載地址
      或著http:///projects/qrcode/downloads/28391/qrcode.zip
      這個(gè)是日本人寫的,生成的是我們常見的方形的二維碼
      可以用中文

      如:5677777ghjjjjj


      有朋友問我要這個(gè)圖片生成的代碼,我就在網(wǎng)上搜索然后整理了一個(gè)類,首先要把SwetakeQRCode的jar包qrcode.jar放在工程的編譯路徑下,這個(gè)包的下載地址就是上面給出的SwetakeQRCode的官網(wǎng)http://www./qrcode/java/qr_java.html ,下面是一個(gè)測(cè)試的類
      Java代碼  收藏代碼
      1. import com.swetake.util.Qrcode;  
      2.   
      3. import javax.imageio.ImageIO;  
      4. import java.awt.*;  
      5. import java.awt.image.BufferedImage;  
      6. import java.io.File;  
      7. import java.io.IOException;  
      8. import java.io.UnsupportedEncodingException;  
      9.   
      10. /** 
      11.  * Created with IntelliJ IDEA. 
      12.  * Date: 10/9/13 
      13.  * Time: 11:31 AM 
      14.  */  
      15. public class QRCodeTest {  
      16.   
      17.   
      18.     private static int DEFAULT_WIDTH;  
      19.     private static int UNIT_WIDTH = 10;  
      20.   
      21.     public static void main(String args[]) throws Exception{  
      22.         createImg();  
      23.   
      24.     }  
      25.   
      26.     public static void createImg(){  
      27.         Qrcode qrcode=new Qrcode();  
      28.         //錯(cuò)誤修正容量   
      29.         //L水平   7%的字碼可被修正  
      30.         //M水平   15%的字碼可被修正  
      31.         //Q水平   25%的字碼可被修正  
      32.         //H水平   30%的字碼可被修正  
      33.         //QR碼有容錯(cuò)能力,QR碼圖形如果有破損,仍然可以被機(jī)器讀取內(nèi)容,最高可以到7%~30%面積破損仍可被讀取。  
      34.         //相對(duì)而言,容錯(cuò)率愈高,QR碼圖形面積愈大。所以一般折衷使用15%容錯(cuò)能力。  
      35.         qrcode.setQrcodeErrorCorrect('M');/* L','M','Q','H' */  
      36.         qrcode.setQrcodeEncodeMode('B');/* "N","A" or other */  
      37.         qrcode.setQrcodeVersion(3);/* 0-20 */  
      38.   
      39.         String testString = "5677777ghjjjjj";  
      40.   
      41.         byte[] buff = null;  
      42.         try {  
      43.             buff = testString.getBytes("utf-8");  
      44.         } catch (UnsupportedEncodingException e) {  
      45.             e.printStackTrace();  
      46.         }  
      47.         boolean[][] bRect = qrcode.calQrcode(buff);  
      48.         DEFAULT_WIDTH = bRect.length * UNIT_WIDTH;  
      49.   
      50.         BufferedImage bi = new BufferedImage(DEFAULT_WIDTH, DEFAULT_WIDTH, BufferedImage.TYPE_INT_RGB);  
      51. //        int unitWidth = DEFAULT_WIDTH / bRect.length;  
      52.   
      53. // createGraphics  
      54.         Graphics2D g = bi.createGraphics();  
      55.   
      56. // set background  
      57.         g.setBackground(Color.WHITE);  
      58.         g.clearRect(00, DEFAULT_WIDTH, DEFAULT_WIDTH);  
      59.         g.setColor(Color.BLACK);  
      60.   
      61.         if (buff.length>0 && buff.length <123){  
      62.   
      63.             for (int i=0;i<bRect.length;i++){  
      64.   
      65.                 for (int j=0;j<bRect.length;j++){  
      66.                     if (bRect[j][i]) {  
      67.                         g.fillRect(j*UNIT_WIDTH, i*UNIT_WIDTH, UNIT_WIDTH-1, UNIT_WIDTH-1);  
      68.                     }  
      69.                 }  
      70.   
      71.             }  
      72.         }  
      73.   
      74.         g.dispose();  
      75.         bi.flush();  
      76.   
      77.         String FilePath="QRCode.png";  
      78.         File f = new File(FilePath);  
      79.   
      80.         try {  
      81.             ImageIO.write(bi, "png", f);  
      82.         } catch (IOException e) {  
      83.             e.printStackTrace();  
      84.         }  
      85.         System.out.println("Create QRCode finished!");  
      86.     }  
      87. }  


      對(duì)于代碼進(jìn)行一下說明,其它的就不說了,主要說一下如何使QRcode充滿整個(gè)畫面,我這里就是先定義UNIT_WIDTH=10或著其它的值,然后再算出畫面應(yīng)該為多大,之后畫出的就會(huì)充滿整個(gè)畫面,不過,這樣好看是好看,我們就能控制畫面的大小了,所以也可以先定義DEFAULT_WIDTH也就是畫面的長(zhǎng)寬,然后再算出UNIT_WIDTH,這樣畫面的大小就是固定的了,不過,這樣算出的單位DEFAULT_WIDTH / bRect.length不一定整好整除,所以畫面看起來(lái)會(huì)不太爽,這些都不是大問題,調(diào)一調(diào)就可以了。bRect.length這個(gè)的大小是由qrcode.setQrcodeVersion(3)這里面的值決定,不是由字符串的長(zhǎng)度決定。

      還有下面的zxing也可以生成這樣的qrcode的。


      2:
      使用BarCode4j生成條形碼和二維碼
      BarCode4j網(wǎng)址:http:///projects/barcode4j/

      barcode4j是使用datamatrix的二維碼生成算法,為支持qr的算法
      datamatrix是歐美的標(biāo)準(zhǔn),qr為日本的標(biāo)準(zhǔn),
      barcode4j一般生成出來(lái)是長(zhǎng)方形的

      如:88777alec000yan


      這個(gè)博客這方面說的挺清楚的:
      http://baijinshan./blog/1004554

      3:zxing
      zxing 這個(gè)是google的
      下載地址
      http://code.google.com/p/zxing/downloads/list
      Java代碼  收藏代碼
      1. import java.io.File;  
      2. import java.util.Hashtable;  
      3.   
      4. import com.google.zxing.BarcodeFormat;  
      5. import com.google.zxing.EncodeHintType;  
      6. import com.google.zxing.MultiFormatWriter;  
      7. import com.google.zxing.client.j2se.MatrixToImageWriter;  
      8. import com.google.zxing.common.BitMatrix;  
      9. import com.google.zxing.qrcode.QRCodeWriter;  
      10.   
      11.   
      12.   
      13. public class QRCodeEvents {  
      14.       
      15.     public static void main(String []args)throws Exception{  
      16.         String text = "你好";  
      17.         int width = 100;  
      18.         int height = 100;  
      19.         String format = "png";  
      20.         Hashtable hints= new Hashtable();  
      21.         hints.put(EncodeHintType.CHARACTER_SET, "utf-8");  
      22.          BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height,hints);  
      23.          File outputFile = new File("new.png");  
      24.          MatrixToImageWriter.writeToFile(bitMatrix, format, outputFile);  
      25.            
      26.     }  
      27. }  

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多