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

生成小程序的二維碼的base64碼(中間logo可以自定義)

這篇具有很好參考價值的文章主要介紹了生成小程序的二維碼的base64碼(中間logo可以自定義)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?1.生成基礎二維碼

    /**
     * 生成微信小程序二維碼,帶參數(shù),最終轉(zhuǎn)成base64
     * @param page 當前小程序相對頁面 必須是已經(jīng)發(fā)布的小程序存在的頁面(否則報錯),例如 pages/index/index, 根路徑前不要填加 /,不能攜帶參數(shù)(參數(shù)請放在scene字段里),如果不填寫這個字段,默認跳主頁面
     * @param scene 最大32個可見字符,只支持數(shù)字,大小寫英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,其它字符請自行編碼為合法字符(因不支持%,中文無法使用 urlencode 處理,請使用其他編碼方式)
     * @param accessToken 接口調(diào)用憑證
     */
    public static String generateQrCode(String page, String scene,String accessToken) {
            BufferedImage bi= null;
        try {
            URL url = new URL("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken);
            HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
            httpURLConnection.setRequestMethod("POST");
            httpURLConnection.setDoOutput(true);
            httpURLConnection.setDoInput(true);
            PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream());
            JSONObject paramJson = new JSONObject();
            paramJson.put("scene", scene);
            paramJson.put("page", page);
            paramJson.put("width", 430);
            paramJson.put("auto_color", false);
            JSONObject lineColor = new JSONObject();
            lineColor.put("r", 0);
            lineColor.put("g", 0);
            lineColor.put("b", 0);
            paramJson.put("line_color", lineColor);
            printWriter.write(paramJson.toString());
            printWriter.flush();
            BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream());
            bi = ImageIO.read(bis);
            printWriter.close();
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            try {
                // 設置圖片格式
                ImageIO.write(bi, "jpg", stream);
            } catch (IOException e) {
                e.printStackTrace();
            }


            byte[] bytes = Base64.encodeBase64(stream.toByteArray());
            String base64 = new String(bytes);
            return "data:image/jpeg;base64," + base64;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

2.自定義logo

加入以下代碼:

            //要替換的圖片路徑
            BufferedImage logoImage = ImageIO.read(new URL("https://nk-mall.oss-cn-shenzhen.aliyuncs.com/WDMPV_MP/1698932836550.png"));
            // logo圖的寬高
            int width = logoImage.getWidth();
            int height = logoImage.getHeight();
            // 保存正方形的邊長
            int size = Math.min(width, height);
            // 判斷那條邊的邊更長
            // 裁剪:獲取正中間的正方形,邊長為圖片寬的值 后面.size方法必須調(diào)用 否則異常
            logoImage = Thumbnails.of(logoImage).sourceRegion(Positions.CENTER, size, size).size(size, size).asBufferedImage();
            // 轉(zhuǎn)成圓形
            logoImage = convertCircular(logoImage);
            // 縮放:放大微信二維碼的底圖  目的為了減少對用戶上傳的圖片縮放過小圖片失真
            bi = Thumbnails.of(bi).size(bi.getHeight() * 2, bi.getHeight() * 2).asBufferedImage();
            // 使用Graphics2D合并圖片
            Graphics2D g2 = null;
            // 讀取微信二維碼圖片
            g2 = bi.createGraphics();
            // 合并:并設置偏移量,logo圖片大小。具體需要自己按照實際的大小調(diào)整
            g2.drawImage(logoImage, 232 , 232, 395, 395, null);
            g2.dispose();

完整代碼:

?
/**
     * 生成微信小程序二維碼,帶參數(shù),最終轉(zhuǎn)成base64
     * @param page 當前小程序相對頁面 必須是已經(jīng)發(fā)布的小程序存在的頁面(否則報錯),例如 pages/index/index, 根路徑前不要填加 /,不能攜帶參數(shù)(參數(shù)請放在scene字段里),如果不填寫這個字段,默認跳主頁面
     * @param scene 最大32個可見字符,只支持數(shù)字,大小寫英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,其它字符請自行編碼為合法字符(因不支持%,中文無法使用 urlencode 處理,請使用其他編碼方式)
     * @param accessToken 接口調(diào)用憑證
     */
    public static String generateQrCode(String page, String scene,String accessToken) {
            BufferedImage bi= null;
        try {
            URL url = new URL("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken);
            HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
            httpURLConnection.setRequestMethod("POST");
            httpURLConnection.setDoOutput(true);
            httpURLConnection.setDoInput(true);
            PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream());
            JSONObject paramJson = new JSONObject();
            paramJson.put("scene", scene);
            paramJson.put("page", page);
            paramJson.put("width", 430);
            paramJson.put("auto_color", false);
            JSONObject lineColor = new JSONObject();
            lineColor.put("r", 0);
            lineColor.put("g", 0);
            lineColor.put("b", 0);
            paramJson.put("line_color", lineColor);
            printWriter.write(paramJson.toString());
            printWriter.flush();
            BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream());
            bi = ImageIO.read(bis);
            printWriter.close();

            //要替換的圖片路徑
            BufferedImage logoImage = ImageIO.read(new URL("https://nk-mall.oss-cn-shenzhen.aliyuncs.com/WDMPV_MP/1698932836550.png"));
            // logo圖的寬高
            int width = logoImage.getWidth();
            int height = logoImage.getHeight();
            // 保存正方形的邊長
            int size = Math.min(width, height);
            // 判斷那條邊的邊更長
            // 裁剪:獲取正中間的正方形,邊長為圖片寬的值 后面.size方法必須調(diào)用 否則異常
            logoImage = Thumbnails.of(logoImage).sourceRegion(Positions.CENTER, size, size).size(size, size).asBufferedImage();
            // 轉(zhuǎn)成圓形
            logoImage = convertCircular(logoImage);
            // 縮放:放大微信二維碼的底圖  目的為了減少對用戶上傳的圖片縮放過小圖片失真
            bi = Thumbnails.of(bi).size(bi.getHeight() * 2, bi.getHeight() * 2).asBufferedImage();
            // 使用Graphics2D合并圖片
            Graphics2D g2 = null;
            // 讀取微信二維碼圖片
            g2 = bi.createGraphics();
            // 合并:并設置偏移量,logo圖片大小。具體需要自己按照實際的大小調(diào)整
            g2.drawImage(logoImage, 232 , 232, 395, 395, null);
            g2.dispose();


            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            try {
                // 設置圖片格式
                ImageIO.write(bi, "jpg", stream);
            } catch (IOException e) {
                e.printStackTrace();
            }


            byte[] bytes = Base64.encodeBase64(stream.toByteArray());
            String base64 = new String(bytes);
            return "data:image/jpeg;base64," + base64;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

?

?文章來源地址http://www.zghlxwxcb.cn/news/detail-744249.html

到了這里,關(guān)于生成小程序的二維碼的base64碼(中間logo可以自定義)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關(guān)文章

  • Vue中使用qrcode實現(xiàn)渲染二維碼中間添加自定義logo-demo

    Vue中使用qrcode實現(xiàn)渲染二維碼中間添加自定義logo-demo

    我們首先創(chuàng)建一個新的 canvas 元素,用于容納生成的二維碼。然后,使用 QRCode.toCanvas 方法將二維碼生成到新的 canvas 元素中。 接下來,在 logo.onload 事件處理程序中,我們創(chuàng)建一個 Image 對象來加載logo圖像,并在二維碼中間繪制logo。最后,將生成的二維碼轉(zhuǎn)換為數(shù)據(jù)URL,并將

    2024年02月10日
    瀏覽(41)
  • Vue中兩種生成二維碼(帶logo)并下載方式

    ????????生成的二維碼需要顯示logo,并且點擊可以二維碼可以下載保存,有兩種方案供選擇( vue-qr、qrcode ) 我的nodejs版本12.13.0,大家可以使用cnpm下載更好。 html代碼: JS代碼: text 是要生成的內(nèi)容 size 表示二維碼的寬高,寬高一致 margin 二維碼圖像的外邊距, 默認 20px

    2024年02月01日
    瀏覽(26)
  • 在Spring Boot中使用ZXing開源庫生成帶有Logo的二維碼

    在Spring Boot中使用ZXing開源庫生成帶有Logo的二維碼

    在上一篇文章的基礎上,我們將進一步擴展功能,實現(xiàn)在生成的二維碼中嵌入Logo圖片。這樣的二維碼更具個性化和識別度。讓我們逐步完成這個功能。 首先,準備一張用作Logo的圖片,并確保它的大小適中。將Logo圖片放置在項目的資源文件夾中,例如 src/main/resources 。 在 Q

    2024年01月24日
    瀏覽(31)
  • uniapp(微信小程序/支付寶小程序) - 最新解決canavs繪制海報、二維碼圖片等不顯示問題,在uniapp小程序開發(fā)中使用canavs制作base64圖片在真機運行時空白不顯示(詳細解決方法)

    uniapp(微信小程序/支付寶小程序) - 最新解決canavs繪制海報、二維碼圖片等不顯示問題,在uniapp小程序開發(fā)中使用canavs制作base64圖片在真機運行時空白不顯示(詳細解決方法)

    在uniapp微信小程序 | uniapp支付寶小程序中,詳解canavs技術(shù)繪制圖像后在真實手機上運行不顯示的問題,解決uniapp安卓蘋果ios運行小程序后二維碼/海報無法加載和展示,完美解決兼容問題、圖片太大畫不出來、加載失敗等。支持保存到相冊中或長按保存。 很多教程都無效,本

    2024年04月25日
    瀏覽(25)
  • 生成微信小程序發(fā)布上線后的二維碼 、獲取微信小程序二維碼、微信小程序二維碼如何生成?

    生成微信小程序發(fā)布上線后的二維碼 、獲取微信小程序二維碼、微信小程序二維碼如何生成?

    情景: 1、在微信小程序?qū)徍送瓿?,發(fā)布到線上后,想通過掃描小程序二維碼進入小程序 2、可分享二維碼出去,通過二維碼掃碼進入小程序 方法: 1、進入微信小程序的后臺配置。鏈接:微信公眾平臺。(如圖一) 2、進入 “設置”?-- “?基本設置” -- “小程序碼及線下物

    2024年02月12日
    瀏覽(102)
  • 如何生成微信小程序二維碼,小程序內(nèi)頁二維碼

    如何生成微信小程序二維碼,小程序內(nèi)頁二維碼

    你自己得有個微信公眾號,只需要知道小程序的名字就可以了 生成小程序二維碼 第一步編輯素材 第二步搜索小程序名字,然后回車,下一步 第三步選小程序碼 小程序內(nèi)頁二維碼 第一步編輯素材 第二步搜索小程序名字,然后回車,下一步 第三步點擊‘獲取更多路徑’ 第四

    2024年02月15日
    瀏覽(31)
  • 微信小程序怎樣生成體驗版二維碼?微信小程序怎么轉(zhuǎn)化為二維碼?

    微信小程序怎樣生成體驗版二維碼?微信小程序怎么轉(zhuǎn)化為二維碼?

    方法:在微信開發(fā)者工具界面,右上角,點擊上傳,如果提示成功,說明已經(jīng)上傳成功。 ? ? 網(wǎng)址: 微信公眾平臺 微信公眾平臺,給個人、企業(yè)和組織提供業(yè)務服務與用戶管理能力的全新服務平臺。 https://mp.weixin.qq.com/ 在微信公眾號平臺登錄,選擇需要生成二維碼的小程序

    2024年02月10日
    瀏覽(106)
  • uni——小程序二維碼生成

    后臺假設返回123的數(shù)據(jù),我們對將其生成二維碼并且以彈框的形式顯示出來。均封裝成組件,誰用誰引。 1.uqrcode組件,生成canvas:

    2024年02月10日
    瀏覽(17)
  • 小程序?qū)⒈卷撁嫔啥S碼,二維碼掃碼帶參數(shù)進小程序指定頁面

    小程序?qū)⒈卷撁嫔啥S碼,二維碼掃碼帶參數(shù)進小程序指定頁面

    1、因為小程序調(diào)用 https://api.weixin.qq.com/ 不能直接調(diào)用這個接口,所以我們需要在ApiPost上先測試一下生成一下二維碼,生成測試沒問題后可以讓后端調(diào)用返回給前端。 獲取access_token方法官方文檔地址如下: https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html

    2024年02月15日
    瀏覽(26)
  • uniapp小程序---二維碼(生成、保存)

    JS庫介紹 uniapp中生成二維碼這里推薦使用 uQRCode ,uQRCode是一款基于 Javascript環(huán)境 開發(fā)的二維碼生成插件, 適用所有Javascript運行環(huán)境 的前端應用和Node.js應用。 同時uQRCode可 擴展性高 ,它支持 自定義渲染二維碼 ,可通過uQRCode API得到二維碼繪制關(guān)鍵信息后,使用canvas、svg或

    2024年02月08日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包