下载qrcode phpqrcode下载 https://sourceforge.net/projects/phpqrcode/
简单重写了一下二维码生成方法 默认的是背景 0,0,0 内容 255,255,255
找到 类QRimage下的image方法 复制替换
private static function image($frame, $pixelPerPoint = 4, $outerFrame = 4,$color=[])? ? ? ? ? { ? ? ? ? ? ? $h = count($frame); ? ? ? ? ? ? $w = strlen($frame[0]); ? ? ? ? ? ?? ? ? ? ? ? ? $imgW = $w + 2*$outerFrame; ? ? ? ? ? ? $imgH = $h + 2*$outerFrame; ? ? ? ? ? ?? ? ? ? ? ? ? $base_image =ImageCreate($imgW, $imgH); ? ? ? ? ??
? ? ? ? ? ? if(empty($color[0]) || (count($color[0]) < 3)){ ? ? ? ? ? ? ? ? $color[0] = [255,255,255]; ? ? ? ? ? ? } ? ? ? ? ? ? if(empty($color[1]) || (count($color[1]) < 3)){ ? ? ? ? ? ? ? ? $color[1] = [0,0,0]; ? ? ? ? ? ? } ? ? ? ? ? ? if(empty($color[2]) || (count($color[2]) < 3)){ ? ? ? ? ? ? ? ? $color[2] = [0,0,0]; ? ? ? ? ? ? }
? ? ? ? ? ? $col[0] = ImageColorAllocate($base_image,$color[0][0],$color[0][1],$color[0][2]); ? ? ? ? ? ? $col[1] = ImageColorAllocate($base_image,$color[1][0],$color[1][1],$color[1][2]); ? ? ? ? ? ? $col[2] = ImageColorAllocate($base_image,$color[2][0],$color[2][1],$color[2][2]); ? ? ? ? ? ? imagefill($base_image, 0, 0, $col[0]);
? ? ? ? ? ? for($y=0; $y<$h; $y++) { ? ? ? ? ? ? ? ? for($x=0; $x<$w; $x++) { ? ? ? ? ? ? ? ? ? ? if ($frame[$y][$x] == '1') { ? ? ? ? ? ? ? ? ? ? ? ? if(($y <= 7 ) && ($x <= 7|| $x >= $w-7)){ ? ? ? ? ? ? ? ? ? ? ? ? ?? ?$key = 2; ? ? ? ? ? ? ? ? ? ? ? ? }else if($y >= $h-7 && $x <= 7){ ? ? ? ? ? ? ? ? ? ? ? ? ?? ?$key = 2; ? ? ? ? ? ? ? ? ? ? ? ? }else{ ? ? ? ? ? ? ? ? ? ? ? ? ?? ?$key = 1; ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? ?ImageSetPixel($base_image,$x+$outerFrame,$y+$outerFrame,$col[$key]); ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? ? ? // ImageCreate ? ? ? ? ? ? // imagecreatetruecolor ?PNG图片背景透明用这个 ? ? ? ? ? ? $target_image =ImageCreate($imgW * $pixelPerPoint, $imgH * $pixelPerPoint); ? ? ? ? ? ? ImageCopyResized($target_image, $base_image, 0, 0, 0, 0, $imgW * $pixelPerPoint, $imgH * $pixelPerPoint, $imgW, $imgH); ? ? ? ? ? ? ImageDestroy($base_image); ? ? ? ? ? ?? ? ? ? ? ? ? return $target_image; ? ? ? ? } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 调用的时候多了一个参数$color 格式如下
// rbg颜色 ?? ??? ?$color = [ ?? ??? ??? ?[255,255,255],//背景色 ?? ??? ??? ?[227,28,52],//定位角的颜色? ?? ??? ??? ?[247,134,0],//中间内容的颜色 ?? ??? ?]; 1 2 3 4 5 6 一定是rbg格式的颜色值
$color = [ ?? ?[255,255,255],//背景色 ?? ?[227,28,52],//定位角的颜色? ?? ?[247,134,0],//中间内容的颜色 ]; $qrcode->png($data, 'qRcode.png', $level, $size,2,false,$color); 1 2 3 4 5 6 效果 ↓↓
需要注意的是 $color 传参的地方需要修改的方法有点多 调用了好多方法 但是都不难找 看源码加一下参数就好了
或者下载我改好的phpqrcode.php https://github.com/zlzlzlzlzlzlzl/qrcode-color 替换后 创建$color参数就可以调用了 ———————————————— 版权声明:本文为CSDN博主「that中间偏右」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_44589491/article/details/104708412
|