zoukankan      html  css  js  c++  java
  • PHP扫描图片转点阵 二维码转点阵

    	/**
         * 图片转点阵(黑白)
         * @param string $imgPath
         * @return array
         */
        function imgToLattice(string $imgPath): array
        {
            $size = getimagesize($imgPath);// 得到图片的信息
            $im = imagecreatefrompng($imgPath);// 創建一張圖片
            // 储存二进制数组
            $lattice = [];
            $white = [
                'red' => 255,
                'green' => 255,
                'blue' => 255,
                'alpha' => 0,
            ];
            for ($i = 0; $i < $size[1]; ++ $i) {
                $lattice[$i] = '';
                for ($j = 0; $j < $size[0]; ++$j) {
                    $rgb = imagecolorat($im, $j, $i);          //取得某像素的颜色索引值
                    $rgbArr = imagecolorsforindex($im, $rgb);
                    if ($white === $rgbArr){
                        $lattice[$i] .= 0;
                    }else{
                        $lattice[$i] .= 1;
                    }
                }
            }
    
            return [$lattice, $size];
        }
    

    注解:

    $rgbArr = imagecolorsforindex($im, $rgb);
    

    这里返回一个RGB数组,跟$white数组一样,我因为二维码只有黑白,所以这里只做了黑白判断,黑就是1,白就是0,如果你的图片支持三种级以上,这里可以做判断,拼接其他数字

    if ($white === $rgbArr){
    	$lattice[$i] .= 0;
    }else{
    	$lattice[$i] .= 1;
    }
    

    打印出来效果:

    转成HTML:

  • 相关阅读:
    有限自动机的构造与识别
    c语言文法
    201506110097-试验一实验报告
    作业9.30
    组合数据类型练习,综合练习
    Python综合基础练习
    linux基本命令
    试述大数据对思维方式的重要影响
    语法分析
    有限自动机的构造与识别
  • 原文地址:https://www.cnblogs.com/cxfs/p/13461965.html
Copyright © 2011-2022 走看看