BarcodeGenerator::qr_penalty_3

  1. Bitrix24 API (v. 23.675.0)
  2. ui
  3. BarcodeGenerator
  4. qr_penalty_3
  • Модуль: ui
  • Путь к файлу: ~/bitrix/modules/ui/lib/barcode/barcodegenerator.php
  • Класс: BitrixUIBarcodeBarcodeGenerator
  • Вызов: BarcodeGenerator::qr_penalty_3
private function qr_penalty_3(&$matrix, $size) {
	$score = 0;
	for ($i = 0; $i < $size; $i++) {
		$rowvalue = 0;
		$colvalue = 0;
		for ($j = 0; $j < 11; $j++) {
			$rv = ($matrix[$i][$j] == 5 || $matrix[$i][$j] == 3) ? 1 : 0;
			$cv = ($matrix[$j][$i] == 5 || $matrix[$j][$i] == 3) ? 1 : 0;
			$rowvalue = (($rowvalue << 1) & 0x7FF) | $rv;
			$colvalue = (($colvalue << 1) & 0x7FF) | $cv;
		}
		if ($rowvalue == 0x5D0 || $rowvalue == 0x5D) $score += 40;
		if ($colvalue == 0x5D0 || $colvalue == 0x5D) $score += 40;
		for ($j = 11; $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;
			$rowvalue = (($rowvalue << 1) & 0x7FF) | $rv;
			$colvalue = (($colvalue << 1) & 0x7FF) | $cv;
			if ($rowvalue == 0x5D0 || $rowvalue == 0x5D) $score += 40;
			if ($colvalue == 0x5D0 || $colvalue == 0x5D) $score += 40;
		}
	}
	return $score;
}

Добавить комментарий