Atitit.二維碼功能的設計實踐 attilax 總結

来源:http://www.cnblogs.com/attilax/archive/2016/05/23/5521893.html
-Advertisement-
Play Games

Atitit.二維碼功能的設計實踐 attilax 總結 1.1. 二維碼要實現的功能1 1.2. 現有二維碼功能設計不足的地方(待改進)1 1.3. 二維碼組件1 1.4. Java版 zxing類庫..2 1.5. Php版 laveral框架版3 1.6. Phpqrcode框架版3 1.7. ...


 

 

 

Atitit.二維碼功能的設計實踐 attilax 總結

 

 

1.1. 二維碼要實現的功能1

1.2. 現有二維碼功能設計不足的地方(待改進)1

1.3. 二維碼組件1

1.4. Java版  zxing類庫..2

1.5. Phplaveral框架版3

1.6. Phpqrcode框架版3

1.7. Qa集合與註意事項3

 

1.1. 二維碼要實現的功能

顯示二維碼

保持二維碼圖片為文件

直接輸出二維碼圖片流

Img src為二維碼圖片

一般要傳遞order_id 或者一個url參數為主。

 

 

 

 

1.2. 現有二維碼功能設計不足的地方(待改進)

Java phpapi 統一化

增加Js sdk

 

 

1.3. 二維碼組件

Prj eform

<a href="{{ url('/qrcodeQ5/qrcode.php?url='.base64_encode($url)) }}">

      <img class="img-res bd" style="max-width:250px" src="{{ url('/qrcodeQ5/qrcode.php?url='.base64_encode($url)) }}" alt="...">

    </a>

 

作者::  ★(attilax)>>>   綽號:老哇的爪子  全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿爾 拉帕努伊  漢字名:艾龍,  EMAIL:[email protected]

轉載請註明來源: http://www.cnblogs.com/attilax/

 

1.4. Java版  zxing類庫..

 

#-----com.xx.share.sharex.java

public   String gene(String code) {
        String qrcodedir = "qrcodeO5/"+filex.getUUidName()+".jpg";
    
        String path=pathx.webAppPath() + "/" + qrcodedir;
        filex.createAllPath(path);
        core.log("--qrcode path:"+path);
    // attilax 老哇的爪子  下午5:30:42   2014511 
      qrcodex.    gene(code, path, 250, 250);
      return qrcodedir;
    }

 

#----com.attilax.qrcode.qrcodex.javar


public static void gene(final String content, final String path,
            final int width, final int height) {
        new tryX<Object>() {

            @Override
            public Object item(Object t) throws Exception {
                // attilax 老哇的爪子  下午5:23:26   2014511 
                   MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
                     
                     Map hints = new HashMap();
                     hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
                 
                    BitMatrix bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, width, height,hints);
                     File file1 = new File(path );
                     MatrixToImageWriter.writeToFile(bitMatrix, "jpg", file1);
                return null;
            }
        }.$("");
    }    
    

 

1.5. Phplaveral框架版

    ob_clean();//清除輸出

 $image=QrCode::format('png')->merge('/public/'.CDN_IMG.'logo.png', .3)->margin(2)->size(200)->color(0,0,0)->backgroundColor(255,255,255)->encoding('UTF-8')->generate($url);

return response()->make($image, 200, [

            'content-type' => 'image/png',

        ]);

1.6. Phpqrcode框架版

 

<?php

$url=base64_decode($_GET["url"]);

include 'phpqrcode/phpqrcode.php';

//QRcodeQ5::png('code data text', 'filename.png'); // creates file

QRcodeQ5::png($url);

 

//QRcodeQ5::png('some othertext 1234'); // creates code image and outputs it directly into browser

//輸出圖片   

//imagepng($QR, 'helloweixin.png');   

?>

 

 

1.7. Qa集合與註意事項

輸出png的圖片不能正常顯示,這個通常是bom頭造成的,某一個類庫phputf8格式的,而生成qrcodephp界面include了它。。。最簡單的解決方案是

先用   ob_clean();//清除輸出,一般就可,但在laveral框架下,任然不可。。

就把生成qrcodephp組件獨立出來,然後通過imgsrc調用。。即可。。

 

參考

atitit.二維碼生成總結java zxing - attilax的專欄 - 博客頻道 - CSDN.NET.html

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 路由模式其實和訂閱模式差不多,只不過交換機的類型不同而已 路由模式可以用下圖來表示,比訂閱模式多了一個key,舉個慄子就是根據不同的人群來訂閱公眾號,來收取消息 根據不同的key來獲取不同的消息 最簡單的就是男性用戶以及女性用戶的關註信息是不同的,推送的內容當然也是根據不同分類來推送 下圖就是微信公 ...
  • You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single ...
  • [導讀] 這篇文章是圍繞PHP的學習問題,之前介紹過《重磅資料!Github上的PHP資源彙總大全》《深入探討PHP類的封裝與繼承》《PHP的學習規劃建議》等對PHP學習有幫助的內容,為了你可以更好地學習PHP,這次主要是想說一下PHP的學習線路,文末還有10條PHP性能優化的小技巧介紹哦。 這篇文 ...
  • 學習任何一門語言的第一步,首先要寫個'hello world',這算是程式員的一個傳統。但在寫之前,還有註意幾個問題。 首先,python是一門腳本語言,而腳本語言的特點就是:我們寫的代碼會先由解釋器進行編譯以後,再去執行。但是當我們的程式運行在操作系統之上時,系統並沒有那麼智能,能夠自動識別出我們 ...
  • Python是躋身於當代IT世界最流行和代碼最高效的編程語言之一。Python框架能幫助你快速啟動Web應用。 1.CubicWeb CubicWeb的最重要的功能是其代碼的可重用性,由一個個代碼單元組成。它靈活又強大,並且還有一些特別的功能,包括RQL查詢語言和支持有效編碼的語義視圖功能。這是語義 ...
  • 在php5.0.1版本中提供了SplSubject和SplObserver兩個介面幫助開發這實現觀察者模式。 被觀察者: 觀察者: 觀察者模式的簡單理解: 在官網API中提供了一個例子是這樣的。現在有幾種報紙,諸如美國日報、中國日報之類的,每類報紙都有固定的訂閱者。現在有個需求是:每當報紙發佈新的新 ...
  • 返回ABP系列 ABP是“ASP.NET Boilerplate Project (ASP.NET樣板項目)”的簡稱。 ASP.NET Boilerplate是一個用最佳實踐和流行技術開發現代WEB應用程式的新起點,它旨在成為一個通用的WEB應用程式框架和項目模板。 ABP的官方網站:http:// ...
  • "設計模式系列目錄" 需求情景 還是試想一個情景:現在有一個自定義對話框。當主界面上的按鈕被點擊後,彈出對話框。 一般的設計思路是這樣的: 假設這個對話框可以保存一些狀態,比如上次輸入的內容之類的信息,那我們就需要保證這個實例唯一,也就是第一次使用的時候創建一次實例,之後都使用這個實例。 看到這裡, ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...