日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java生成图片二维码

發布時間:2023/12/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java生成图片二维码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
import java.awt.Color; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File;import javax.imageio.ImageIO;import com.swetake.util.Qrcode;public class QRCodeUtils {/*** 二維碼可包含的內容* EncodeMode** @author lipw* @date 2018年8月1日下午4:47:15*/public class EncodeMode {/*** N代表的是數字*/public final static char N = 'N';/*** A代表的是a-z*/public final static char A = 'A';/*** B代表的是其他字符*/public final static char B = 'B';}/*** 二維碼的容錯能力等級* 二維碼容錯率用字母表示,容錯能力等級分為:L、M、Q、H四級* 二維碼具有容錯功能,當二維碼圖片被遮擋一部分后,仍可以掃描出來。* 容錯的原理是二維碼在編碼過程中進行了冗余,就像是123被編碼成123123,這樣只要掃描到一部分二維碼圖片,* 二維碼內容還是可以被全部讀到。* 二維碼容錯率即是指二維碼圖標被遮擋多少后,仍可以被掃描出來的能力。容錯率越高,則二維碼圖片能被遮擋的部分越多。* ErrorCorrect** @author lipw* @date 2018年8月1日下午4:49:17*/public class ErrorCorrect {/*** 低,最大 7% 的錯誤能夠被糾正*/public final static char L = 'L';/*** 中,最大 15% 的錯誤能夠被糾正*/public final static char M = 'M';/*** 中上,最大 25% 的錯誤能夠被糾正*/public final static char Q = 'Q';/*** 高,最大 30% 的錯誤能夠被糾正*/public final static char H = 'H';}/*** 基于 QRCode 創建二維碼** @param content 要寫入二維碼的內容* @param savePath 完整的保存路徑* @param version 版本* @param logoPath 完整的logo路徑,可以為:null* @return* @author lipw* @date 2018年8月2日上午10:21:57*/public static boolean CreateQRCode(String content, String savePath, int version, String logoPath) {// 創建生成二維碼的對象Qrcode qrcode = new Qrcode();// 設置二維碼的容錯能力等級qrcode.setQrcodeErrorCorrect(ErrorCorrect.M);// N代表的是數字,A代表的是a-z,B代表的是其他字符qrcode.setQrcodeEncodeMode(EncodeMode.B);// 版本qrcode.setQrcodeVersion(version);// 設置驗證碼的大小int width = 67 + 12 * (version - 1);int height = 67 + 12 * (version - 1);// 定義緩沖區圖片BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);// 設置畫圖工具Graphics2D gs = bufferedImage.createGraphics();// 設置二維碼背景顏色gs.setBackground(Color.white);//lightGray// 設置顏色gs.setColor(Color.black);//cyan,green,red,black,pink// 清除畫板內容gs.clearRect(0, 0, width, height);// 定義偏移量int pixoff = 2;// 填充的內容轉化為字節數byte[] ctt;try {ctt = content.getBytes("utf-8");// 設置編碼方式if (ctt.length > 0 && ctt.length < 120) {boolean[][] s = qrcode.calQrcode(ctt);for (int i = 0; i < s.length; i++) {for (int j = 0; j < s.length; j++) {if (s[j][i]) {// 驗證碼圖片填充內容gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);}}}}/* 判斷是否需要添加logo圖片 */if (logoPath != null) {File icon = new File(logoPath);if (icon.exists()) {int width_4 = width / 4;int width_8 = width_4 / 2;int height_4 = height / 4;int height_8 = height_4 / 2;Image img = ImageIO.read(icon);gs.drawImage(img, width_4 + width_8, height_4 + height_8, width_4, height_4, null);} else {System.out.println("Error: login圖片不存在!");}}// 結束寫入gs.dispose();// 結束內存圖片bufferedImage.flush();// 保存生成的二維碼圖片ImageIO.write(bufferedImage, "png", new File(savePath));return true;} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return false;}public static void main(String[] args) {String content = "遙遙最美";String savePath = "C:\\Users\\lyyang\\Desktop\\qrcode.png";int version = 9;String logoPath = "C:\\Users\\lyyang\\Desktop\\a.png";boolean result = CreateQRCode(content, savePath, version, logoPath);if (result) {System.out.println("\n二維碼圖片生成成功!");} else {System.out.println("\n二維碼圖片生成失敗!");}} }

?

總結

以上是生活随笔為你收集整理的java生成图片二维码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。