使用qrcode類制作二維碼

<?phprequire_once './phpqrcode/phpqrcode.php';/** 地址:http://phpqrcode.sourceforge.net/   下載qrcode類* @param string $url      要生成的鏈接* @param bool   $local   是否生成本地文件 * @param string $logo   中間圖片地址 */ echo qrcode('https://www.cnblogs.com/mengor/p/8192642.html',$local=true,$logo="./_img/20170713165304.png");function qrcode($url,$local,$logo){$value = $url; //二維碼內容 鏈接$errorCorrectionLevel = 'M';//容錯級別 $matrixPointSize = 8;//生成圖片大小 if(!$local){QRcode::png($value,false, $errorCorrectionLevel, $matrixPointSize, 2); }else{$abs_url = './_img/';  //保存的二維碼路徑$qr_dir= $abs_url.microtime().'.png'; //保存的二維碼名字 //生成二維碼圖片 QRcode::png($value,  $qr_dir, $errorCorrectionLevel, $matrixPointSize, 2); $QR =  $qr_dir;//已經生成的原始二維碼圖 if ($logo !== FALSE) {$QR = imagecreatefromstring(file_get_contents($QR)); $logo = imagecreatefromstring(file_get_contents($logo)); $QR_width = imagesx($QR);//二維碼圖片寬度 $QR_height = imagesy($QR);//二維碼圖片高度 $logo_width = imagesx($logo);//logo圖片寬度 $logo_height = imagesy($logo);//logo圖片高度 $logo_qr_width = $QR_width / 5; $scale = $logo_width/$logo_qr_width; $logo_qr_height = $logo_height/$scale; $from_width = ($QR_width - $logo_qr_width) / 2; //重新組合圖片并調整大小 imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);//輸出圖片 $he_dir= $abs_url.microtime().'.png';//重組圖片路徑imagepng($QR, $he_dir);return '<img src="'.$he_dir.'" alt="">';      }else{return '<img src="'.$qr_dir.'" alt="">';      }}}

 由于二維碼允許有一定的容錯性,一般的二維碼即使在遮住部分但仍然能夠解碼,經常我們掃描二維碼的時候掃描到甚至不到一半時就能解碼掃描結果,這是因為生成器會將部分信息重復表示來提高其容錯度,這就是為什么我們在二維碼中間加個LOGO圖片并不影響解碼結果的原因。

?


轉載于:https://www.cnblogs.com/mengor/p/8192642.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/281467.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281467.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281467.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《Hadoop大明白》【1】Hadoop的核心組件

為什么80%的碼農都做不了架構師&#xff1f;>>> 本書適用于想對大數據平臺Hadoop有深入了解的程序員朋友&#xff0c;會幫助你以后在應用開發方面趟平一些坑。 1&#xff0c;Hadoop 是一個系列大數據組件構成的應用平臺&#xff0c;可由多個廉價機器搭建集群&#…

計算機專業學教育技術優勢,西南交通大學教育技術學(040110)專業介紹

一、學科概況“教育技術學”是教育學一級學科下的一個二級學科&#xff0c;教育技術學是教育學和計算機信息技術發展下新興的跨專業交叉性學科&#xff0c;也是一個理論與實踐相結合的應用學科。主要研究信息技術特別是計算機網絡技術、多媒體技術與教育技術的有效整合&#xf…

.NET7是如何優化Guid.Equals性能的?

簡介在之前的文章中&#xff0c;我們多次提到 Vector - SIMD 技術&#xff0c;也答應大家在后面分享更多.NET7 中優化的例子&#xff0c;今天就帶來一個使用 SIMD 優化Guid.Equals()方法性能的例子。為什么 Guid 能使用 SIMD 優化&#xff1f;首先就需要介紹一些背景知識&#…

go語言載入json的一個坑

問題簡介 go語言標準庫匯總內置了對 json 文件的處理&#xff0c;非常方便&#xff0c;最近在寫一個應用的時候&#xff0c;需要從 json 文件中載入 配置&#xff0c;由于是 go 新手&#xff0c;忽略一個細節&#xff0c;導致載入內容始終為空 代碼演示 代碼是最好的說明載體 p…

el表達式 if 和 if else 的寫法

javaScript的if else大家都不會陌生&#xff0c;但可能很多小伙伴并不知道在jsp文件里&#xff0c;el表達式的if else是怎么寫的&#xff0c;下面安利給各位小伙伴。 el表達式 if 代碼示例示例1<c:if test"${jsonObject.transportTypeName eq 火車}"><li>…

Effective_STL 學習筆記(二十七) 用 distance 和 advance 把 const_iterator 轉化成 iterator...

并不存在從 const_iterator 到 iterator 之間的隱式轉換 一種安全的、可移植的方法獲取他所對應的 iterator&#xff1a; 1   typedef deque<int> IntDeque;     // 方便的typedef 2   typedef IntDeque::iterator Iter; 3   typedef IntDeque::const_iterato…

分布式唯一Id

支持.Net/.Net Core/.Net Framework&#xff0c;可以部署在Docker, Windows, Linux, Mac。分布式唯一Id&#xff0c;顧名思義&#xff0c;是指在全世界任何一臺計算機上都不會重復的唯一Id。在單機/單服務器/單數據庫的小型應用中&#xff0c;不需要用到這類東西。但在高并發、…

缺氧游戲黑科技計算機,《缺氧》游戲內參數修改圖文詳解

很多玩家都很喜歡缺氧這款游戲&#xff0c;有時候因為一些不可告人的秘密我們需要修改游戲中的內容來達到簡化我們的生存難度&#xff0c;這樣就需要修改游戲的腳本&#xff0c;所幸《缺氧 》對于這個問題很寬容&#xff0c;完全沒有加密地圖的生成腳本&#xff0c;讓我們可以完…

Python 項目實踐三(Web應用程序)第四篇

接著上節繼續學習&#xff0c;本章將建立用戶賬戶 Web應用程序的核心是讓任何用戶都能夠注冊賬戶并能夠使用它&#xff0c;不管用戶身處何方。在本章中&#xff0c;你將創建一些表單&#xff0c;讓用戶能夠添加主題和條目&#xff0c;以及編輯既有的條目。你還將學習Django如何…

新手想買二手車 先看看買車后這五個步驟吧

買二手車你該知道 很多人因為資金短缺又或者是想要一輛便宜車“練手”而選擇去買一輛價格低廉&#xff0c;有著一定車齡的二手車。很多人看中二手車正正是因為便宜&#xff0c;以為是購買以后基本不需要再投入新的花費&#xff0c;殊不知這是非常錯誤的想法&#xff0c;因為以下…

yii---where or該如何使用

今天調試YII項目的時候&#xff0c;遇到一個奇葩的事兒&#xff0c;在調試 where or 查詢的時候&#xff1a;調試語句是這樣&#xff1a; $str static::find()->where([or,username > $username,mobile > $account]); echo "<br>"; echo $st…

十六進制編輯器--ImHex

十六進制編輯器是用于編輯單個字節數據的軟件應用程序&#xff0c;主要由程序員或系統管理員使用。常規文本編輯器和十六進制編輯器之間的區別在于常規編輯器表示文件的邏輯內容&#xff0c;而十六進制編輯器表示文件的物理內容。十六進制編輯器可以讓你以十六進制的形式查看或…

計算機第一課 教案 紀律,信息技術開學第一課-紀律

《信息技術開學第一課-紀律》由會員分享&#xff0c;可在線閱讀&#xff0c;更多相關《信息技術開學第一課-紀律(3頁珍藏版)》請在人人文庫網上搜索。1、信息技術開學第一課教學目標&#xff1a;1、 了解學生的基礎情況&#xff0c;選出課代表2、 分好學習小組&#xff0c;選出…

奧迪堅SVRM(Screen-Voice Recording Manager)錄屏軟件正式發布

奧迪堅SVRM(Screen-Voice Recording Manager)能夠對座席通話同步錄音的同時進行座席操作錄屏 實時監控座席屏幕操作&#xff0c;及時糾正操作問題。 座席質檢可以邊聽邊看&#xff0c;為KPI考核提供依據。 利用優秀座席操作記錄對座席進行培訓。 監控坐席人員對敏感信息訪問次數…

小米:開源不僅要站在巨人的肩膀上,還要為巨人指方向

今天上午&#xff0c;第一屆小米開源技術峰會在北京舉行&#xff0c;會上&#xff0c;小米人工智能與云平臺副總裁崔寶秋致開場詞&#xff0c;并發表了《小米開源之路》的演講。 崔寶秋強調小米一直在推動開源&#xff0c;也是開源的倡導者。他告訴我們雷軍創立小米的其中一個重…

容器基本操作

docker run --namefang -it image_id /bin/bash 執行的shell docker ps -a 查看所有容器&#xff0c; -l 查看最近運行容器 docker inspect 查看容器的詳細信息 docker start [-i] container_id 或者名字也可以 docker rm 刪除容器docker ps 查看正在運行的容器do…

計算機及相關設備制造業2020,在現實生活中,接近完全壟斷市場類型的行業包括()。A.計算機及相關設備制造業B.稀有...

在現實生活中&#xff0c;接近完全壟斷市場類型的行業包括()。A&#xff0e;計算機及相關設備制造業B&#xff0e;稀有更多相關問題【簡答題】請解釋以下名詞: 制動、緩解、實施制動作用、實施緩解作用、制動距離。【簡答題】請解釋以下名詞: 制動、緩解、實施制動作用、實施緩…

CAS原理

像synchronized這種獨占鎖屬于悲觀鎖&#xff0c;它是在假設一定會發生沖突的&#xff0c;那么加鎖恰好有用&#xff0c;除此之外&#xff0c;還有樂觀鎖&#xff0c;樂觀鎖的含義就是假設沒有發生沖突&#xff0c;那么我正好可以進行某項操作&#xff0c;如果要是發生沖突呢&a…

數據分析師的職業規劃之路

“數據分析師作為一個出現時間不長的工種&#xff0c;大數據時代下&#xff0c;成為螺絲釘還是成為龍頭&#xff0c;需要嘗試新的可能。” 數據分析師手中擁有一座寶藏。作為滴滴出行數據分析團隊的負責人&#xff0c;劉普成發現了數據分析師通往卓越的秘訣&#xff1a;視野。數…

《設計模式》3.結構型模式

點擊進入我的博客 3.1 適配器模式 適配器模式把一個類的接口變換成客戶端所期待的另一種接口&#xff0c;使得原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。 3.1.1 類的適配器結構 目標&#xff08;Target&#xff09;角色&#xff1a;這就是所期待得到的接口&…