电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java生成二維碼的實(shí)例代碼

瀏覽:82日期:2022-08-25 11:04:30

使用開(kāi)源的一維/二維碼圖形處理庫(kù)zxing GitHub地址

引入依賴(lài)

<!-- https://mvnrepository.com/artifact/com.google.zxing/core --><dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0</version></dependency><!-- https://mvnrepository.com/artifact/com.google.zxing/javase --><dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.0</version></dependency>

封裝工具類(lèi)

package com.app.utils; import java.awt.Color;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.util.HashMap;import java.util.Map; import javax.imageio.ImageIO;import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;import com.google.zxing.MultiFormatWriter;import com.google.zxing.client.j2se.MatrixToImageConfig;import com.google.zxing.client.j2se.MatrixToImageWriter;import com.google.zxing.common.BitMatrix;import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; /** * @title 生成二維碼工具類(lèi) * @author zch * @discribtion * @Date 2020年1月3日 下午4:26:05 * @vision V1.0 */public class QRCodeUtil{ private static final int width = 200; // 圖像寬度 private static final int height = 200; // 圖像高度 private static final int ON_COLOR = 0xFF000001; private static final int OFF_COLOR = 0xFFFFFFFF; /** * @title 生成二維碼圖片 * @discribtion * @author zch * @Date 2020年1月3日 下午3:27:21 * @param width 二維碼寬度,默認(rèn)為200 * @param height 二維碼高度,默認(rèn)為200 * @param content 二維碼內(nèi)容,必填 * @param logoPath logo圖片路徑,若為空則生成不帶logo的二維碼 * @param imgPath 生成二維碼文件夾路徑 * @param imgName 生成二維碼圖片名稱(chēng),必填 * @param suffix 生成二維碼圖片后綴類(lèi)型,例如:gif,必填 * @vision V1.0 */ public static boolean generateQRImage(Integer width, Integer height, String content, String logoPath, String imgPath, String imgName, String suffix) { if (content == null || imgName == null || suffix == null) { return false; } try { width = width == null ? QRCodeUtil.width : width; height = height == null ? QRCodeUtil.height : height; if (logoPath != null && !''.equals(logoPath.trim())) {QREncode(width, height, content, logoPath, imgPath, imgName, suffix); } else {QREncode(width, height, content, imgPath, imgName, suffix); } return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * @title 生成二維碼 * @discribtion * @author zch * @Date 2020年1月3日 下午3:27:21 * @vision V1.0 */ private static void QREncode(int width, int height, String content, String imgPath, String imgName, String suffix) throws Exception { File filePath = new File(imgPath); if (!filePath.exists()) { filePath.mkdirs(); } File imageFile = new File(imgPath, imgName); Map<EncodeHintType, Object> hints = new HashMap<>(); // 內(nèi)容編碼格式 hints.put(EncodeHintType.CHARACTER_SET, 'UTF-8'); // 指定糾錯(cuò)等級(jí) hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); // 設(shè)置二維碼邊的空度,非負(fù)數(shù) hints.put(EncodeHintType.MARGIN, 1); BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints); MatrixToImageWriter.writeToPath(bitMatrix, suffix, imageFile.toPath());// 輸出原圖片 } /** * @title 生成帶logo的二維碼 * @discribtion * @author zch * @Date 2020年1月3日 下午3:27:21 * @vision V1.0 */ private static void QREncode(int width, int height, String content, String logoPath, String imgPath, String imgName, String suffix) throws Exception { File filePath = new File(imgPath); if (!filePath.exists()) { filePath.mkdirs(); } File imageFile = new File(imgPath, imgName); Map<EncodeHintType, Object> hints = new HashMap<>(); // 內(nèi)容編碼格式 hints.put(EncodeHintType.CHARACTER_SET, 'UTF-8'); // 指定糾錯(cuò)等級(jí) hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); // 設(shè)置二維碼邊的空度,非負(fù)數(shù) hints.put(EncodeHintType.MARGIN, 1); BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints); MatrixToImageConfig matrixToImageConfig = new MatrixToImageConfig(ON_COLOR, OFF_COLOR); BufferedImage bufferedImage = LogoMatrix(MatrixToImageWriter.toBufferedImage(bitMatrix, matrixToImageConfig), new File(logoPath)); ImageIO.write(bufferedImage, suffix, imageFile);// 輸出帶logo圖片 } /** * @title 二維碼圖片添加logo * @discribtion * @author zch * @Date 2020年1月3日 下午3:27:21 * @param matrixImage 源二維碼圖片 * @param logoFile logo圖片 * @vision V1.0 */ private static BufferedImage LogoMatrix(BufferedImage matrixImage, File logoFile) throws IOException { // 讀取二維碼圖片,并構(gòu)建繪圖對(duì)象 Graphics2D gs = matrixImage.createGraphics(); int matrixWidth = matrixImage.getWidth(); int matrixHeigh = matrixImage.getHeight(); int ratioWidth = matrixWidth * 2 / 10; int ratioHeight = matrixHeigh * 2 / 10; // 讀取Logo圖片 BufferedImage logo = ImageIO.read(logoFile); int logoWidth = logo.getWidth(null) > ratioWidth ? ratioWidth : logo.getWidth(null); int logoHeight = logo.getHeight(null) > ratioHeight ? ratioHeight : logo.getHeight(null); int x = (matrixWidth - logoWidth) / 2; int y = (matrixHeigh - logoHeight) / 2;// 繪制 gs.drawImage(logo, x, y, logoWidth, logoHeight, null); gs.setColor(Color.BLACK); gs.setBackground(Color.WHITE); gs.dispose(); matrixImage.flush(); return matrixImage; }}

測(cè)試生成二維碼

QRCodeUtil.generateQRImage(null, null, 'https://blog.csdn.net/qq_34928194', null, 'E:/', 'test.gif', 'gif');

以上就是Java生成二維碼的實(shí)例代碼的詳細(xì)內(nèi)容,更多關(guān)于Java生成二維碼的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 温室大棚建设|水肥一体化|物联网系统| 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | 艺术漆十大品牌_艺术涂料加盟代理_蒙太奇艺术涂料厂家品牌|艺术漆|微水泥|硅藻泥|乳胶漆 | 有机肥设备生产制造厂家,BB掺混肥搅拌机、复合肥设备生产线,有机肥料全部加工设备多少钱,对辊挤压造粒机,有机肥造粒设备 -- 郑州程翔重工机械有限公司 | 碳刷_刷握_集电环_恒压簧_电刷厂家-上海丹臻机电科技有限公司 | 铝单板_铝窗花_铝单板厂家_氟碳包柱铝单板批发价格-佛山科阳金属 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | 防水接头-电缆防水接头-金属-电缆密封接头-不锈钢电缆接头 | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 水厂污泥地磅|污泥处理地磅厂家|地磅无人值守称重系统升级改造|地磅自动称重系统维修-河南成辉电子科技有限公司 | 全自动端子机|刺破式端子压接机|全自动双头沾锡机|全自动插胶壳端子机-东莞市傅氏兄弟机械设备有限公司 | 生产加气砖设备厂家很多,杜甫机械加气砖设备价格公道 | 小型单室真空包装机,食品单室真空包装机-百科 | 南方珠江-南方一线电缆-南方珠江科技电缆-南方珠江科技有限公司 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | 智能气瓶柜(大型气瓶储存柜)百科 | 底部填充胶_电子封装胶_芯片封装胶_芯片底部填充胶厂家-东莞汉思新材料 | 上海小程序开发-小程序制作-上海小程序定制开发公司-微信商城小程序-上海咏熠 | 铁艺,仿竹,竹节,护栏,围栏,篱笆,栅栏,栏杆,护栏网,网围栏,厂家 - 河北稳重金属丝网制品有限公司 山东太阳能路灯厂家-庭院灯生产厂家-济南晟启灯饰有限公司 | 岛津二手液相色谱仪,岛津10A液相,安捷伦二手液相,安捷伦1100液相-杭州森尼欧科学仪器有限公司 | 丹尼克尔拧紧枪_自动送钉机_智能电批_柔性振动盘_螺丝供料器品牌 | 软文发布-新闻发布推广平台-代写文章-网络广告营销-自助发稿公司媒介星 | 厂厂乐-汇聚海量采购信息的B2B微营销平台-厂厂乐官网 | 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 直流电能表-充电桩电能表-导轨式电能表-智能电能表-浙江科为电气有限公司 | 安平县鑫川金属丝网制品有限公司,声屏障,高速声屏障,百叶孔声屏障,大弧形声屏障,凹凸穿孔声屏障,铁路声屏障,顶部弧形声屏障,玻璃钢吸音板 | 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | loft装修,上海嘉定酒店式公寓装修公司—曼城装饰 | 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | 水成膜泡沫灭火剂_氟蛋白泡沫液_河南新乡骏华消防科技厂家 | 海峰资讯 - 专注装饰公司营销型网站建设和网络营销培训 | 仓储货架_南京货架_钢制托盘_仓储笼_隔离网_环球零件盒_诺力液压车_货架-南京一品仓储设备制造公司 | 微信小程序定制,广州app公众号商城网站开发公司-广东锋火 | 金属波纹补偿器厂家_不锈钢膨胀节价格_非金属伸缩节定制-庆达补偿器 | 智成电子深圳tdk一级代理-提供TDK电容电感贴片蜂鸣器磁芯lambda电源代理经销,TDK代理商有哪些TDK一级代理商排名查询。-深圳tdk一级代理 | 茶叶百科网-茶叶知识与茶文化探讨分享平台 | 水厂污泥地磅|污泥处理地磅厂家|地磅无人值守称重系统升级改造|地磅自动称重系统维修-河南成辉电子科技有限公司 | 玖容气动液压设备有限公司-气液增压缸_压力机_增压机_铆接机_增压器 | 耙式干燥机_真空耙式干燥机厂家-无锡鹏茂化工装备有限公司 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 基本型顶空进样器-全自动热脱附解吸仪价格-AutoHS全模式-成都科林分析技术有限公司 |