php phpqrcode 生成带颜色的二维码 定位角 内容 和背景色
作者:互联网
下载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
标签:pixelPerPoint,color,image,phpqrcode,背景色,base,php,col,255 来源: https://blog.csdn.net/qq_39414785/article/details/118720642