国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【支付系統(tǒng)】java springboot 生成二維碼,二維碼中文亂碼

這篇具有很好參考價(jià)值的文章主要介紹了【支付系統(tǒng)】java springboot 生成二維碼,二維碼中文亂碼。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

? ? ? ? 支付系統(tǒng)必不可少的就是生成二維碼,有時(shí)我們會(huì)需要將支付鏈接轉(zhuǎn)換為二維碼.用戶(hù)通過(guò)移動(dòng)設(shè)備掃描二維碼調(diào)起支付. 該篇文章主要使用的是hutool自帶的二維碼生成功能.

?1. 引入依賴(lài)(hutool 可以按需引入這里就直接使用all了)

        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.5.0</version>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.19</version>
        </dependency>

2. hutool的官方已經(jīng)有很詳細(xì)的生成方式,可以滿足大部分的要求,如下

// 生成指定url對(duì)應(yīng)的二維碼到文件,寬和高都是300像素
QrCodeUtil.generate("https://hutool.cn/", 300, 300, FileUtil.file("d:/qrcode.jpg"));

3. 在二維碼上添加文字和圖片,有時(shí)我們會(huì)需要在二維碼上添加一些logo或者提醒文字,這就需要我們引入字體和圖片.因?yàn)轫?xiàng)目一般都是部署在linux系統(tǒng),以centos為例,centos本身是不包含中文字體,所以在本地開(kāi)發(fā)時(shí)是可以正常顯示字體,生成環(huán)境全變成了亂碼.

  • ? ? ? ?創(chuàng)建字體和圖片對(duì)象(字體文件可以在網(wǎng)上或者window計(jì)算機(jī)中獲取),這里有個(gè)坑,可以查看我另一篇文章解決Java 自定義字體產(chǎn)生大量+~JF***.tmp文件導(dǎo)致硬盤(pán)爆滿
	private static final String FONT_PATH = "simhei.ttf";	
    
    private static Font font;

	private static BufferedImage read;

	static {
		ClassPathResource resource = new ClassPathResource("logo_small.png");
		try (InputStream inputStream = resource.getInputStream()) {
			font = Font.createFont(Font.TRUETYPE_FONT, new File(FONT_PATH)).deriveFont(20F);
			read = ImgUtil.read(inputStream);
		} catch (FontFormatException | IOException e) {
			log.error("獲取字體文件失敗", e);
		}
	}
  • ?生成二維碼
	private static String createQRCode(String url) {
        // generateFilePath為自定義方法,用于生成二維碼存放路徑,和二維碼線上訪問(wèn)地址
        // 主要根據(jù)業(yè)務(wù)編寫(xiě)自己的方法
        Dict dict = FileUtils.generateFilePath(FileDirectoryEnum.QRCODE, "jpg");
		String imgUrl = dict.getStr("url");
		String path = dict.getStr("path");
        // 生成二維碼,
        //參數(shù)1 轉(zhuǎn)換為二維碼的內(nèi)容
        //參數(shù)2 添加二維碼中間的小圖
        //參數(shù)3 二維碼存放位置
		File code = QrCodeUtil.generate(
				url,
				QrConfig.create().setImg(read),
				FileUtil.file(path)
		);
        // 在圖片上添加文字,Imgutil為hutool的工具類(lèi)
		ImgUtil.pressText(
				code,
				code,
				"謹(jǐn)防被騙", Color.RED,
				font,
				0,
				-60,
				1f
		);

		return imgUrl;
	}

上述代碼使用了hutool的ImgUtil工具類(lèi),參數(shù)含義如下

【支付系統(tǒng)】java springboot 生成二維碼,二維碼中文亂碼

?完整代碼

	private static final String FONT_PATH = "simhei.ttf";	
	
    private static Font font;

	private static BufferedImage read;

	static {
		ClassPathResource resource = new ClassPathResource("logo_small.png");
		try (InputStream inputStream = resource.getInputStream()) {
			font = Font.createFont(Font.TRUETYPE_FONT, new File(FONT_PATH)).deriveFont(20F);
			read = ImgUtil.read(inputStream);
		} catch (FontFormatException | IOException e) {
			log.error("獲取字體文件失敗", e);
		}
	}

	private static String createQRCode(String url) {
		Dict dict = FileUtils.generateFilePath(FileDirectoryEnum.QRCODE, "jpg");
		String imgUrl = dict.getStr("url");
		String path = dict.getStr("path");
		File code = QrCodeUtil.generate(
				url,
				QrConfig.create().setImg(read),
				FileUtil.file(path)
		);
		ImgUtil.pressText(
				code,
				code,
				"謹(jǐn)防被騙", Color.RED,
				font,
				0,
				-60,
				1f
		);

		return imgUrl;
	}

?調(diào)用方式文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-507022.html

createQRCode("https://blog.csdn.net/qq_39078783");

到了這里,關(guān)于【支付系統(tǒng)】java springboot 生成二維碼,二維碼中文亂碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vue3-pc端生成微信二維碼、掃碼支付監(jiān)聽(tīng)支付回調(diào)(WebSocket)功能實(shí)現(xiàn)

    vue3-pc端生成微信二維碼、掃碼支付監(jiān)聽(tīng)支付回調(diào)(WebSocket)功能實(shí)現(xiàn)

    項(xiàng)目場(chǎng)景:后臺(tái)系統(tǒng)中采購(gòu)訂單列表需要支持微信掃描支付功能,支付成功需要返回到訂單列表。 調(diào)用接口接收后端返回?cái)?shù)據(jù), npm install qrcode?--save 安裝插件,處理返回?cái)?shù)據(jù)生成二維碼。 1. 后端接口返回?cái)?shù)據(jù)如下: 2. 前端代碼如下: 3. 效果圖如下: 生成二維碼功能到這就完

    2024年02月12日
    瀏覽(184)
  • SpringBoot使用Zxing生成二維碼

    ZXing,一個(gè)支持在圖像中解碼和生成條形碼(如二維碼、PDF 417、EAN、UPC、Aztec、Data Matrix、Codabar)的庫(kù)。ZXing(“zebra crossing”)是一個(gè)開(kāi)源的、多格式的、用Java實(shí)現(xiàn)的一維/二維條碼圖像處理庫(kù),具有到其他語(yǔ)言的端口。 對(duì)于在Spring項(xiàng)目中使用Zxing生成二維碼,其實(shí)比較簡(jiǎn)單,只需

    2024年04月14日
    瀏覽(23)
  • java實(shí)現(xiàn)二維碼生成功能

    java實(shí)現(xiàn)二維碼生成功能

    由于現(xiàn)在對(duì)二維碼的使用比較多,正好我在項(xiàng)目里面也使用到了,所以寫(xiě)篇博客記錄一下。 這里我是將我博客主頁(yè)的url生成二維碼,微信掃一掃可以看到我的博客主頁(yè)(歡迎騷擾) 4.1、設(shè)置參數(shù) 上面這個(gè)只是簡(jiǎn)單的生成二維碼,接下來(lái)說(shuō)說(shuō)自定義參數(shù)的方式生成,如長(zhǎng)、寬

    2024年02月11日
    瀏覽(22)
  • Java生成二維碼(前后端分離項(xiàng)目實(shí)戰(zhàn))

    ?? 本文代碼已放置 github:Mr-Write/SpringbootDemo: 各種demo案例 (github.com) ZXing(Zebra Crossing)是一個(gè)開(kāi)源的條碼掃描和生成庫(kù),用于讀取和生成各種類(lèi)型的條碼和二維碼。它由 Google 開(kāi)發(fā)并發(fā)布,目前由一群開(kāi)源社區(qū)維護(hù)。 ZXing 支持多種常見(jiàn)的條碼格式,包括一維條碼(如EAN-13、

    2024年02月10日
    瀏覽(81)
  • Java生成二維碼的兩種方法

    本文介紹Java生成二維碼的兩種方法,這兩種方法都依賴(lài)于google提供的二維碼依賴(lài)包。 一種是自己寫(xiě)工具類(lèi),代碼可以網(wǎng)上抄。 另一種是使用hutool第三方工具類(lèi)的依賴(lài)包,不用自己抄代碼。 自定義工具包就是借助google生成二維碼的依賴(lài)包,然后自己寫(xiě)工具類(lèi)。 工具類(lèi) 測(cè)試代

    2024年02月06日
    瀏覽(20)
  • Java便捷生成二維碼并使用Excel

    第一步生成圖片字節(jié)數(shù)組輸出流 第二步字節(jié)數(shù)組輸出流存入excel 使用的是easyexcel和hutool工具便捷快速開(kāi)發(fā) 導(dǎo)出類(lèi)信息 @ContentRowHeight(100) @ColumnWidth(100/6) 這兩個(gè)注解是條件excel行列大小,可以自行調(diào)整 EasyExcel 會(huì)根據(jù)這個(gè)實(shí)體類(lèi)來(lái)生成表格,可以去官網(wǎng)查看注解注釋掉其中的某

    2024年02月09日
    瀏覽(19)
  • Java生成二維碼——附Utils工具類(lèi)

    Java生成二維碼——附Utils工具類(lèi)

    參加2023年的計(jì)算機(jī)設(shè)計(jì)大賽國(guó)賽,拿到了一等獎(jiǎng)。 現(xiàn)在將項(xiàng)目中的工具類(lèi)代碼剝離出來(lái),方便之后項(xiàng)目開(kāi)發(fā)中復(fù)用。

    2024年02月15日
    瀏覽(22)
  • java生成、識(shí)別條形碼和二維碼

    java生成、識(shí)別條形碼和二維碼

    使用 zxing 開(kāi)源庫(kù) Zxing主要是Google出品的,用于識(shí)別一維碼和二維碼的第三方庫(kù) 主要類(lèi): BitMatrix 位圖矩陣 MultiFormatWriter 位圖編寫(xiě)器 MatrixToImageWriter 寫(xiě)入圖片 可以生成、識(shí)別條形碼和二維碼 內(nèi)置三種尺寸: enum Size {SMALL, MIDDLE, BIG} 依賴(lài) 將寬度不等的多個(gè)黑條和白條,按照一定

    2024年02月08日
    瀏覽(24)
  • Java生成二維碼的幾種實(shí)現(xiàn)方式

    本文將基于Spring Boot介紹兩種生成二維碼的實(shí)現(xiàn)方式,一種是基于Google開(kāi)發(fā)工具包,另一種是基于Hutool來(lái)實(shí)現(xiàn); 下面我們將基于Spring Boot,并采用兩種方式實(shí)現(xiàn)二維碼的生成,對(duì)于每一種方式還提供兩種類(lèi)型的二維碼返回形式,即:物理文件 和 圖片響應(yīng)流 一、基于Google開(kāi)發(fā)

    2024年02月17日
    瀏覽(19)
  • 西米支付:支付二維碼的簡(jiǎn)單介紹

    西米支付:支付二維碼的簡(jiǎn)單介紹

    二維碼支付從1.0到3.0時(shí)代的歷史進(jìn)程 實(shí)際上二維碼技術(shù)被推出來(lái)已經(jīng)有十多年了,這段悠久綿長(zhǎng)的英雄無(wú)用武之地的時(shí)代屬于二維碼1.0時(shí)代,得益于互聯(lián)網(wǎng)電子商務(wù)的飛速發(fā)展首先將二維碼應(yīng)用于支付并發(fā)揚(yáng)光大的是兩個(gè)第三方支付公司,支付寶微信,這種新型的支付方式支

    2024年02月01日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包