最近在弄圖片處理, 看網上線上生成的四色二維碼挺有趣的。 自己弄了一個。
整體思路:
- 用
composer
的qrcode包生成一個黑白二維碼。 - 使用
imagecolorat
獲取當前畫素的顏色 - 如果當前顏色是黑色, 就使用
imagesetpixel
填充彩色點 - 其中一個比較有意思的就是需要判斷當前畫素點處於哪一塊區域
/**
* 獲取當前所在畫素點的位置
* $x, $y 是當前畫素位置,
* $block 是二維碼有多少個色塊,比如 4 個, 9個
*/
function getLocationIndex($x, $y, $block)
{
$x_index = (int) floor($x / ($img_width / $block));
$y_index = (int) floor($y / ($img_height / $block));
// 接下來的這個 $index 就是當前畫素點算出來處於第幾個色塊
$index = $x_index + (2 * $y_index);
return $index;
}
效果圖:
然後我進行了封裝,程式碼也放到了Github
上面, 支援composer
安裝,又需要的朋友可以看一下。順便來個star
最後祝大家每一天都是快樂*\(^_^)/*
github地址:https://github.com/WaitMoonMan/qrcodeplus
本作品採用《CC 協議》,轉載必須註明作者和本文連結