MCPcopy Create free account
hub / github.com/codemistic/Web-Development / createFrame

Method createFrame

text-to-qr/lib/phpqrcode/phpqrcode.php:722–797  ·  view source on GitHub ↗

----------------------------------------------------------------------

($version)

Source from the content-addressed store, hash-verified

720
721 //----------------------------------------------------------------------
722 public static function createFrame($version)
723 {
724 $width = self::$capacity[$version][QRCAP_WIDTH];
725 $frameLine = str_repeat ("\0", $width);
726 $frame = array_fill(0, $width, $frameLine);
727
728 // Finder pattern
729 self::putFinderPattern($frame, 0, 0);
730 self::putFinderPattern($frame, $width - 7, 0);
731 self::putFinderPattern($frame, 0, $width - 7);
732
733 // Separator
734 $yOffset = $width - 7;
735
736 for($y=0; $y<7; $y++) {
737 $frame[$y][7] = "\xc0";
738 $frame[$y][$width - 8] = "\xc0";
739 $frame[$yOffset][7] = "\xc0";
740 $yOffset++;
741 }
742
743 $setPattern = str_repeat("\xc0", 8);
744
745 QRstr::set($frame, 0, 7, $setPattern);
746 QRstr::set($frame, $width-8, 7, $setPattern);
747 QRstr::set($frame, 0, $width - 8, $setPattern);
748
749 // Format info
750 $setPattern = str_repeat("\x84", 9);
751 QRstr::set($frame, 0, 8, $setPattern);
752 QRstr::set($frame, $width - 8, 8, $setPattern, 8);
753
754 $yOffset = $width - 8;
755
756 for($y=0; $y<8; $y++,$yOffset++) {
757 $frame[$y][8] = "\x84";
758 $frame[$yOffset][8] = "\x84";
759 }
760
761 // Timing pattern
762
763 for($i=1; $i<$width-15; $i++) {
764 $frame[6][7+$i] = chr(0x90 | ($i & 1));
765 $frame[7+$i][6] = chr(0x90 | ($i & 1));
766 }
767
768 // Alignment pattern
769 self::putAlignmentPattern($version, $frame, $width);
770
771 // Version information
772 if($version >= 7) {
773 $vinf = self::getVersionPattern($version);
774
775 $v = $vinf;
776
777 for($x=0; $x<6; $x++) {
778 for($y=0; $y<3; $y++) {
779 $frame[($width - 11)+$y][$x] = chr(0x88 | ($v & 1));

Callers 1

newFrameMethod · 0.95

Calls 4

putFinderPatternMethod · 0.95
putAlignmentPatternMethod · 0.95
getVersionPatternMethod · 0.95
setMethod · 0.45

Tested by

no test coverage detected