資源簡介
Java生成二維碼,可添加圖片logo和文字

代碼片段和文件信息
package?com.wctweb.util;
import?java.awt.Color;
import?java.awt.Font;
import?java.awt.Graphics2D;
import?java.awt.image.BufferedImage;
import?java.io.ByteArrayOutputStream;
import?java.io.File;
import?java.util.Date;
import?java.util.HashMap;
import?java.util.Map;
import?javax.imageio.ImageIO;
import?org.apache.commons.codec.binary.base64;
import?com.google.zxing.BarcodeFormat;
import?com.google.zxing.EncodeHintType;
import?com.google.zxing.MultiFormatWriter;
import?com.google.zxing.WriterException;
import?com.google.zxing.common.BitMatrix;
import?com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
/**??
?*?@Description:?(二維碼)?????
?*/
public?class?ZXingCode{
????private?static?final?int?QRCOLOR?=?0xFF000000;???//默認是黑色
????private?static?final?int?BGWHITE?=?0xFFFFFFFF;???//背景顏色
????public?static?void?main(String[]?args){
????????????getLogoQRCode(“https://www.baidu.com/“?“跳轉到百度的二維碼“);
}
????/**
?????*?生成帶logo的二維碼圖片
?????*
?????*?@param?qrPic
?????*?@param?logoPic
?????*/
????public?static?String?getLogoQRCode(String?qrUrlString?productName){
//??????String?filePath?=?(javax.servlet.http.HttpServletRequest)request.getSession().getServletContext().getRealPath(“/“)?+?“resources/images/logoImages/llhlogo.png“;
????????//filePath是二維碼logo的路徑,但是實際中我們是放在項目的某個路徑下面的,所以路徑用上面的,把下面的注釋就好
????????String?filePath?=?“E:/img/20161201/20161201212120628fmql98ax.jpg“;??//TODO??
????????String?content?=?qrUrl;
????????try{??
????????????ZXingCode?zp?=?new?ZXingCode();
????????????BufferedImage?bim?=?zp.getQR_CODEBufferedImage(content?BarcodeFormat.QR_CODE?400?400?zp.getDecodeHintType());
????????????return?zp.addLogo_QRCode(bim?new?File(filePath)?new?LogoConfig()?productName);
????????}
????????catch?(Exception?e){
????????????e.printStackTrace();
????????}
????????return?null;
????}
????/**
?????*?給二維碼圖片添加Logo
?????*
?????*?@param?qrPic
?????*?@param?logoPic
?????*/
????public?String?addLogo_QRCode(BufferedImage?bim?File?logoPic?LogoConfig?logoConfig?String?productName){
????????try{
????????????/**
?????????????*?讀取二維碼圖片,并構建繪圖對象
?????????????*/
????????????BufferedImage?image?=?bim;
????????????Graphics2D?g?=?image.createGraphics();
????????????/**
?????????????*?讀取Logo圖片
?????????????*/
????????????BufferedImage?logo?=?ImageIO.read(logoPic);
????????????/**
?????????????*?設置logo的大小本人設置為二維碼圖片的20%因為過大會蓋掉二維碼
?????????????*/
????????????int?widthLogo?=?logo.getWidth(null)>image.getWidth()*3/10?(image.getWidth()*3/10):logo.getWidth(null)?
????????????????heightLogo?=?logo.getHeight(null)>image.getHeight()*3/10?(image.getHeight()*3/10):logo.getWidth(null);
????????????/**
?????????????*?logo放在中心
?????????????*/
?????????????int?x?=?(image.getWidth()?-?widthLogo)?/?2;
?????????????int?y?=?(image.getHeight()?-?heightLogo)?/?2;
?????????????/**
?????????????*?logo放在右下角
?????????????*??int?x?=?(image.getWidth()?-?widthLogo);
?????????????*??int?y?=?(image.getHeight()
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????997??2017-02-14?09:27??ORgenTest\.classpath
?????文件???????1042??2017-02-14?09:25??ORgenTest\.project
?????文件????????503??2017-02-14?09:25??ORgenTest\.settings\.jsdtscope
?????文件????????364??2017-02-14?09:25??ORgenTest\.settings\org.eclipse.jdt.core.prefs
?????文件????????479??2017-02-14?09:25??ORgenTest\.settings\org.eclipse.wst.common.component
?????文件????????345??2017-02-14?09:25??ORgenTest\.settings\org.eclipse.wst.common.project.facet.core.xm
?????文件?????????49??2017-02-14?09:25??ORgenTest\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件??????????6??2017-02-14?09:25??ORgenTest\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????文件???????1048??2017-02-14?09:47??ORgenTest\build\classes\com\wctweb\util\LogoConfig.class
?????文件???????7419??2017-02-14?09:47??ORgenTest\build\classes\com\wctweb\util\ZXingCode.class
?????文件??????11348??2017-02-14?09:47??ORgenTest\src\com\wctweb\util\ZXingCode.java
?????文件?????????39??2017-02-14?09:25??ORgenTest\WebContent\me
?????文件?????263865??2017-02-14?09:26??ORgenTest\WebContent\WEB-INF\lib\commons-codec-1.8.jar
?????文件?????538421??2017-02-14?09:27??ORgenTest\WebContent\WEB-INF\lib\core-3.1.0.jar
?????目錄??????????0??2017-02-14?09:33??ORgenTest\build\classes\com\wctweb\util
?????目錄??????????0??2017-02-14?09:33??ORgenTest\build\classes\com\wctweb
?????目錄??????????0??2017-02-14?09:28??ORgenTest\src\com\wctweb\util
?????目錄??????????0??2017-02-14?09:33??ORgenTest\build\classes\com
?????目錄??????????0??2017-02-14?09:33??ORgenTest\src\com\wctweb
?????目錄??????????0??2017-02-14?09:27??ORgenTest\WebContent\WEB-INF\lib
?????目錄??????????0??2017-02-14?09:28??ORgenTest\build\classes
?????目錄??????????0??2017-02-14?09:33??ORgenTest\src\com
?????目錄??????????0??2017-02-14?09:25??ORgenTest\WebContent\me
?????目錄??????????0??2017-02-14?09:25??ORgenTest\WebContent\WEB-INF
?????目錄??????????0??2017-02-14?09:25??ORgenTest\.settings
?????目錄??????????0??2017-02-14?09:25??ORgenTest\build
?????目錄??????????0??2017-02-14?09:28??ORgenTest\src
?????目錄??????????0??2017-02-14?09:25??ORgenTest\WebContent
?????目錄??????????0??2017-02-14?09:25??ORgenTest
-----------?---------??----------?-----??----
............此處省略2個文件信息
- 上一篇:jstl_standard的jar包
- 下一篇:java網上oa辦公系統原碼
評論
共有 條評論