/***Imagetolattice(blackandwhite)*@paramstring$imgPath*@returnarray*/functionimgToLattice(string$imgPath):array{$size=getimagesize($imgPath);//获取图像信息$im=imagecreatefrompng($imgPath);//创建图像//存储二进制数组$lattice=[];$white=['red'=>255,'green'=>255,'blue'=>255,'alpha'=>0,];对于($i=0;$i<$size[1];++$i){$lattice[$i]='';对于($j=0;$j<$size[0];++$j){$rgb=imagecolorat($im,$j,$i);//获取某个像素的颜色索引值$rgbArr=imagecolorsforindex($im,$rgb);如果($white===$rgbArr){$lattice[$i].=0;}else{$lattice[$i].=1;}}}返回[$lattice,$size];}注:$rgbArr=imagecolorsforindex($im,$rgb);这里返回一个RGB数组,和$white数组一样,我只有二维码黑白,所以这里只做黑白判断,黑色为1,白色为0,如果你的图片支持三级以上,可以在这里进行判断,拼接其他数字if($white===$rgbArr){$lattice[$i].=0;}else{$lattice[$i].=1;}打印出来的效果:转成HTML:
