----------------------------------------------------------------------
($maskNo, $width, $s, &$d, $maskGenOnly = false)
| 2611 | |
| 2612 | //---------------------------------------------------------------------- |
| 2613 | public function makeMaskNo($maskNo, $width, $s, &$d, $maskGenOnly = false) |
| 2614 | { |
| 2615 | $b = 0; |
| 2616 | $bitMask = array(); |
| 2617 | |
| 2618 | $fileName = QR_CACHE_DIR.'mask_'.$maskNo.DIRECTORY_SEPARATOR.'mask_'.$width.'_'.$maskNo.'.dat'; |
| 2619 | |
| 2620 | if (QR_CACHEABLE) { |
| 2621 | if (file_exists($fileName)) { |
| 2622 | $bitMask = self::unserial(file_get_contents($fileName)); |
| 2623 | } else { |
| 2624 | $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d); |
| 2625 | if (!file_exists(QR_CACHE_DIR.'mask_'.$maskNo)) |
| 2626 | mkdir(QR_CACHE_DIR.'mask_'.$maskNo); |
| 2627 | file_put_contents($fileName, self::serial($bitMask)); |
| 2628 | } |
| 2629 | } else { |
| 2630 | $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d); |
| 2631 | } |
| 2632 | |
| 2633 | if ($maskGenOnly) |
| 2634 | return; |
| 2635 | |
| 2636 | $d = $s; |
| 2637 | |
| 2638 | for($y=0; $y<$width; $y++) { |
| 2639 | for($x=0; $x<$width; $x++) { |
| 2640 | if($bitMask[$y][$x] == 1) { |
| 2641 | $d[$y][$x] = chr(ord($s[$y][$x]) ^ (int)$bitMask[$y][$x]); |
| 2642 | } |
| 2643 | $b += (int)(ord($d[$y][$x]) & 1); |
| 2644 | } |
| 2645 | } |
| 2646 | |
| 2647 | return $b; |
| 2648 | } |
| 2649 | |
| 2650 | //---------------------------------------------------------------------- |
| 2651 | public function makeMask($width, $frame, $maskNo, $level) |
no test coverage detected