摘要:二維碼圖片寬度二維碼圖片高度圖片寬度圖片高度重新組合圖片并調整大小最后直接輸出圖像即可還是老樣子,我們給圖片來個名字這次用為隨機數時間戳而后輸出圖像整個帶的二維碼生成就完成了。
利用 phpqrcode 二維碼生成類庫和 imagecopymerge 函數制作帶二維碼的圖片
首先引用phpqrcode類庫
下載phpqrcode類庫
下載地址就不提供了,百度一搜一大把;
新建php文件用于創建二維碼
請注意看(每段中文后面都會有一定的代碼示例) 比如:新建文件 qrcode.php 之后在文件中引入phpqrcode類庫 代碼演示 include("../phpqrcode/phpqrcode.php"); 而后就到了設置二維碼的鏈接地址了 $url = "http://www.baidu.com"; 接著設置二維碼的容錯級別,何為容錯級別?通俗點就是容錯級別百分比越高,就越容易識別,下面是三種容錯級別: L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%); 按照效果排序依次是 H -> Q -> M -> L 所以,就直接用 H 代碼示例: $errorCorrectionLevel = "H";//容錯級別 而后繼續設置生成二維碼圖片的大小 $matrixPointSize = 7;//圖片大小慢慢自己調整,只要是int就行 設置生成二維碼的圖片名稱,博主用了5為隨機數+時間戳生成文件名,為了防止文件名重復相互覆蓋。。 QR = rand(10000,99999).time().".png"; 最后就到了生成二維碼啦! 直接調用ORcode::png()就行,帶上剛才設置好的參數。最后的這個參數*2*是代表白邊的寬度。 QRcode::png($url, $QR, $errorCorrectionLevel, $matrixPointSize, 2);
如果你想在二維碼中間放個LOGO那么你就繼續看!
首先,引用一張圖片(you company LOGO) $logo = "./images/logo.png"; 而后為了程序的完整性,簡單的判斷一下。也許某些童鞋不要LOGO的,注意看下面的代碼,博主注釋的都比較清楚的。
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); }
最后直接輸出圖像即可
還是老樣子,我們給圖片來個名字;這次用6為隨機數+時間戳 $QRM = rand(100000,999999).time().".png"; imagepng($QR, $QIMG); 而后輸出圖像 echo "";
整個帶logo的二維碼生成就完成了。如果還要拼合在其他圖像上就繼續接著看!(文章結尾有整個項目的代碼,記得點贊!)
imagecopymerge函數制拼合(鑲嵌,合并)圖片 同樣適合水印之類的
首先還是設置圖片,底圖和上面的覆蓋圖
$dst_path = "a.png";//底圖 $src_path = $QIMG;//覆蓋圖,我們就繼續用上面的那張圖QIMG
創建圖片的實例
$dst = imagecreatefromstring(file_get_contents($dst_path)); $src = imagecreatefromstring(file_get_contents($src_path));
獲取覆蓋圖片的寬高
list($src_w, $src_h) = getimagesize($src_path);
將圖片復制到目標圖片(底圖)上,最后個參數是設置透明度(50為半透明,100為不透明,自己隨意設置即可),這里實現不透明效果,兩個20是控制圖片坐標位置,自己慢慢調整
imagecopymerge($dst, $src, 20, 20, 0, 0, $src_w, $src_h, 100);
如果水印圖片本身帶透明色,則使用imagecopy方法
imagecopy($dst, $src, 10, 10, 0, 0, $src_w, $src_h);//博主的不是透明的,所以不用這段~用下面的
生成圖片
list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);
而后用switch判斷一下圖片的類型
switch ($dst_type) { case 1://GIF header("Content-Type: image/gif"); imagegif($dst); break; case 2://JPG header("Content-Type: image/jpeg"); imagejpeg($dst); break; case 3://PNG header("Content-Type: image/png"); imagepng($dst); break; default: break; }
最后將圖片打印出來
imagedestroy($dst); imagedestroy($src);
整個程序的完整代碼,伸手黨們!記得點贊打賞收藏等等等等!
include("../phpqrcode/phpqrcode.php"); $url = "http://www.baidu.com"; //二維碼內容 $errorCorrectionLevel = "H";//容錯級別 $matrixPointSize = 7;//生成圖片大小 //生成二維碼圖片 $QR = rand(10000,99999).time().".png"; QRcode::png($url, $QR, $errorCorrectionLevel, $matrixPointSize, 2); $logo = "../images/logo.png";//準備好的logo圖片 //生成時間戳處理覆蓋圖片防止權限的存在 // $op = time(); // $QR = "qrcode.png";//已經生成的原始二維碼圖 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); } //輸出圖片 $QIMG = rand(100000,999999).time().".png"; imagepng($QR, $QIMG); $dst_path = "a.png";//底圖 $src_path = $QIMG;//覆蓋圖 //創建圖片的實例 $dst = imagecreatefromstring(file_get_contents($dst_path)); $src = imagecreatefromstring(file_get_contents($src_path)); //獲取覆蓋圖圖片的寬高 list($src_w, $src_h) = getimagesize($src_path); //將覆蓋圖復制到目標圖片上,最后個參數100是設置透明度(100是不透明),這里實現不透明效果,兩個20是覆蓋圖坐標位置 imagecopymerge($dst, $src, 20, 20, 0, 0, $src_w, $src_h, 100); //如果覆蓋圖圖片本身帶透明色,則使用imagecopy方法 //imagecopy($dst, $src, 10, 10, 0, 0, $src_w, $src_h); //輸出圖片 list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path); switch ($dst_type) { case 1://GIF header("Content-Type: image/gif"); imagegif($dst); break; case 2://JPG header("Content-Type: image/jpeg"); imagejpeg($dst); break; case 3://PNG header("Content-Type: image/png"); imagepng($dst); break; default: break; } imagedestroy($dst); imagedestroy($src);
源代碼理解不了的,請看上面的文章,我都寫的比較清楚,代碼里面也注釋了~遇到問題解決不了請百度,實在不行就留言給博主,博主會第一時間回復你!
大功告成,博主要看巴薩打拉斯帕爾馬斯了!但愿我梅老板能再繼續進逆天任意球!
okey bye see you!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/22291.html
摘要:二維碼圖片寬度二維碼圖片高度圖片寬度圖片高度重新組合圖片并調整大小最后直接輸出圖像即可還是老樣子,我們給圖片來個名字這次用為隨機數時間戳而后輸出圖像整個帶的二維碼生成就完成了。 利用 phpqrcode 二維碼生成類庫和 imagecopymerge 函數制作帶二維碼的圖片 首先引用phpqrcode類庫 下載phpqrcode類庫 下載地址就不提供了,百度一搜一大把; 新建...
摘要:第一種方法第一種方法利用使用最廣泛,最方便的技術實現封裝生成二維碼圖片的函數方法利用生成二維碼圖片二維碼內容參數生成二維碼的尺寸,寬度和高度的值可選參數,糾錯等級生成的二維碼離邊框的距離使用注意事項先構建內容字符串調用函數生成構建內容字符串 第一種方法: 1,第一種方法:利用使用最廣泛,最方便的Google api技術實現; 2, 第二種方法: 1,第二種方法使用php類庫PHP QR...
摘要:移動端活動頁面常常需要能夠分享到各種社交中,常用的有微信等。微信二維碼問題同一個頁面里要是有兩個二維碼,長按掃描總是只能掃出左側第一個二維碼。 首發于簡書博客:http://www.jianshu.com/p/e958... 2017-11-25 更新:5. 使用 Gulp 拼合圖片 1. 單個頁面內容不能過多 設計常用尺寸:750 x 1334 / 640 x 1134,包含了手機頂...
摘要:移動端活動頁面常常需要能夠分享到各種社交中,常用的有微信等。微信二維碼問題同一個頁面里要是有兩個二維碼,長按掃描總是只能掃出左側第一個二維碼。 首發于簡書博客:http://www.jianshu.com/p/e958... 2017-11-25 更新:5. 使用 Gulp 拼合圖片 1. 單個頁面內容不能過多 設計常用尺寸:750 x 1334 / 640 x 1134,包含了手機頂...
閱讀 2896·2021-11-15 11:39
閱讀 1520·2021-08-19 10:56
閱讀 1096·2019-08-30 14:12
閱讀 3739·2019-08-29 17:29
閱讀 723·2019-08-29 16:21
閱讀 3424·2019-08-26 12:22
閱讀 1518·2019-08-23 16:30
閱讀 1023·2019-08-23 15:25