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
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...