java 產生二維碼

來源:互聯網
上載者:User

標籤:++   src   doc   main   ext   fill   jpg   date   static   

這裡主要使用Google的zxing架包。

<dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.2.1</version></dependency>

注意:2.1版本後需要jdk1.7支援

API:  

package crunchify.com.tutorial; import java.awt.Color;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.util.EnumMap;import java.util.Map; import javax.imageio.ImageIO; import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;import com.google.zxing.WriterException;import com.google.zxing.common.BitMatrix;import com.google.zxing.qrcode.QRCodeWriter;import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; /** * @author Crunchify.com * Updated: 03/20/2016 - added code to narrow border size  */ public class CrunchifyQRCode { // Tutorial: http://zxing.github.io/zxing/apidocs/index.html public static void main(String[] args) {String myCodeText = "http://crunchify.com/";String filePath = "/Users/appshah/Documents/CrunchifyQR.png";int size = 250;String fileType = "png";File myFile = new File(filePath);try {Map<EncodeHintType, Object> hintMap = new EnumMap<EncodeHintType, Object>(EncodeHintType.class);hintMap.put(EncodeHintType.CHARACTER_SET, "UTF-8");// Now with zxing version 3.2.1 you could change border size (white border size to just 1)hintMap.put(EncodeHintType.MARGIN, 1); /* default = 4 */hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L); QRCodeWriter qrCodeWriter = new QRCodeWriter();BitMatrix byteMatrix = qrCodeWriter.encode(myCodeText, BarcodeFormat.QR_CODE, size,size, hintMap);int CrunchifyWidth = byteMatrix.getWidth();BufferedImage image = new BufferedImage(CrunchifyWidth, CrunchifyWidth,BufferedImage.TYPE_INT_RGB);image.createGraphics(); Graphics2D graphics = (Graphics2D) image.getGraphics();graphics.setColor(Color.WHITE);graphics.fillRect(0, 0, CrunchifyWidth, CrunchifyWidth);graphics.setColor(Color.BLACK); for (int i = 0; i < CrunchifyWidth; i++) {for (int j = 0; j < CrunchifyWidth; j++) {if (byteMatrix.get(i, j)) {graphics.fillRect(i, j, 1, 1);}}}ImageIO.write(image, fileType, myFile);} catch (WriterException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}System.out.println("\n\nYou have successfully created QR Code.");}}

產生:

java 產生二維碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.