本文主要介紹了產生二維碼的開源工具的對比,附源碼下載,具有一定的參考價值,下面跟著小編一起來看下吧
某天發現生成二維碼的工具(zxing)運作的很慢,於是乎上網尋找產生二維碼的工具,發現常見的開源工具有以下三種:
Zxing(zxing.dll)
ThoughtWorks(ThoughtWorks.QRCode.dll)
QrCodeNet(Gma.QrCodeNet.Encoding.dll)
#選哪個好呢?那就自己手動比較一下吧。
首先就遇到一個大坑,為啥人家zxing的使用方式和自己的使用的不一樣,後來才發現zxing.dll其實有倆版,一個416kb,一個200多kb。我們原來用的是200多kb的,效率比較慢,那就用416kb的比較吧
(zxing有倆版,都叫zxing.dll,都是生成二維碼的,可能作者還是一個人,但是使用方式和效率差距太大了,請認準416kb版本#)
1. 對被編碼的內容長度的支持,如下表所示:
可以看出ThoughtWorks對於編碼內容有長度限制(可以透過設定調整,但還是很容易超長),基本上已經被踢出局。 )
2. 三種工具的執行效率
其中:twqr指ThoughtWorks,netqr指QrCodeNet。可以看出已經out出局的ThoughtWorks執行效率最快,而Zxing是QrCodeNet的2倍,但是時間都不是很長。而除了ThoughtWorks外另外兩個都會隨著被程式設計內容變長而成長。
3. 產生檔案大小的比較:
檔案大小QrCodeNet更小些,QrCodeNet甚至可以依照內容大小調整尺寸。而Zxing最大,不過Zxing的尺寸也是大於其他兩個的。
(zxing是設定像素大小,所以這裡用於50x數值,因為只有100的倍數才能確保邊框的設定和實際產生的邊框大小相符;而ThoughtWorks和QrCodeNet設定數值,實際尺寸約是33x數值,和邊框值有關)
4. 邊框設定
該問題比較複雜,表格可以列很多,這裡就概述下
ThoughtWorks預設不支援邊框,所以他設定尺寸是:33x數值+1
QrCodeNet支援無邊框,細邊框,粗邊框三種,所以設定的尺寸為:29x數值、33x數值、37x數值
Zxing尺寸和邊框可以任意設置,所以zxing優先保證尺寸,至於邊框是在滿足尺寸之後才會考慮邊框的大小,根據經驗尺寸是100的倍數時邊框支援的最好。
5. 抉擇
已經比較完成了,大夥覺得選哪個呢? 如果非要選一個我比較傾向選Zxing#。不過我更想告訴大家的是,誰也不選,而是做一個代理模式,對外暴漏的是自己的介面#,底層你管我用的是誰呢,說不定明天我就換了一個更美更好的介面呢。
6. 我要帶logo
二維碼必須帶logo,所以我從"諸葛風流"那偷來了源碼,會放到附件上。附件中已經是做好了代理模式的源碼,如果有用請點贊,用好請留言。
【相關推薦】
2.ASP教學
#以上是詳解三種二維碼的開源工具的不同之處的詳細內容。更多資訊請關注PHP中文網其他相關文章!

C#和.NET通過不斷的更新和優化,適應了新興技術的需求。 1)C#9.0和.NET5引入了記錄類型和性能優化。 2).NETCore增強了雲原生和容器化支持。 3)ASP.NETCore與現代Web技術集成。 4)ML.NET支持機器學習和人工智能。 5)異步編程和最佳實踐提升了性能。

c#.netissutableforenterprise-levelapplications withemofrosoftecosystemdueToItsStrongTyping,richlibraries,androbustperraries,androbustperformance.however,itmaynotbeidealfoross-platement forment forment forment forvepentment offependment dovelopment toveloperment toveloperment whenrawspeedsportor whenrawspeedseedpolitical politionalitable,

C#在.NET中的編程過程包括以下步驟:1)編寫C#代碼,2)編譯為中間語言(IL),3)由.NET運行時(CLR)執行。 C#在.NET中的優勢在於其現代化語法、強大的類型系統和與.NET框架的緊密集成,適用於從桌面應用到Web服務的各種開發場景。

C#是一種現代、面向對象的編程語言,由微軟開發並作為.NET框架的一部分。 1.C#支持面向對象編程(OOP),包括封裝、繼承和多態。 2.C#中的異步編程通過async和await關鍵字實現,提高應用的響應性。 3.使用LINQ可以簡潔地處理數據集合。 4.常見錯誤包括空引用異常和索引超出範圍異常,調試技巧包括使用調試器和異常處理。 5.性能優化包括使用StringBuilder和避免不必要的裝箱和拆箱。

C#.NET應用的測試策略包括單元測試、集成測試和端到端測試。 1.單元測試確保代碼的最小單元獨立工作,使用MSTest、NUnit或xUnit框架。 2.集成測試驗證多個單元組合的功能,常用模擬數據和外部服務。 3.端到端測試模擬用戶完整操作流程,通常使用Selenium進行自動化測試。

C#高級開發者面試需要掌握異步編程、LINQ、.NET框架內部工作原理等核心知識。 1.異步編程通過async和await簡化操作,提升應用響應性。 2.LINQ以SQL風格操作數據,需注意性能。 3..NET框架的CLR管理內存,垃圾回收需謹慎使用。

C#.NET面試問題和答案包括基礎知識、核心概念和高級用法。 1)基礎知識:C#是微軟開發的面向對象語言,主要用於.NET框架。 2)核心概念:委託和事件允許動態綁定方法,LINQ提供強大查詢功能。 3)高級用法:異步編程提高響應性,表達式樹用於動態代碼構建。

C#.NET是構建微服務的熱門選擇,因為其生態系統強大且支持豐富。 1)使用ASP.NETCore創建RESTfulAPI,處理訂單創建和查詢。 2)利用gRPC實現微服務間的高效通信,定義和實現訂單服務。 3)通過Docker容器化微服務,簡化部署和管理。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。