• Модуль: ui
  • Путь к файлу: ~/bitrix/modules/ui/lib/barcode/barcodegenerator.php
  • Класс: BitrixUIBarcodeBarcodeGenerator
  • Вызов: BarcodeGenerator::qr_penalty_1
private function qr_penalty_1(&$matrix, $size) {
	$score = 0;
	for ($i = 0; $i < $size; $i++) {
		$rowvalue = 0;
		$rowcount = 0;
		$colvalue = 0;
		$colcount = 0;
		for ($j = 0; $j < $size; $j++) {
			$rv = ($matrix[$i][$j] == 5 || $matrix[$i][$j] == 3) ? 1 : 0;
			$cv = ($matrix[$j][$i] == 5 || $matrix[$j][$i] == 3) ? 1 : 0;
			if ($rv == $rowvalue) {
				$rowcount++;
			} else {
				if ($rowcount >= 5) $score += $rowcount - 2;
				$rowvalue = $rv;
				$rowcount = 1;
			}
			if ($cv == $colvalue) {
				$colcount++;
			} else {
				if ($colcount >= 5) $score += $colcount - 2;
				$colvalue = $cv;
				$colcount = 1;
			}
		}
		if ($rowcount >= 5) $score += $rowcount - 2;
		if ($colcount >= 5) $score += $colcount - 2;
	}
	return $score;
}