codemasher hace 4 años
padre
commit
eb33b62a51
Se han modificado 3 ficheros con 6 adiciones y 6 borrados
  1. 1 1
      src/Decoder/Binarizer.php
  2. 1 2
      src/Decoder/Decoder.php
  3. 4 3
      src/Detector/Detector.php

+ 1 - 1
src/Decoder/Binarizer.php

@@ -160,7 +160,7 @@ final class Binarizer{
 	/**
 	 *
 	 */
-	public function getHistogramBlackMatrix(int $width, int $height):BitMatrix{
+	private function getHistogramBlackMatrix(int $width, int $height):BitMatrix{
 		$matrix = new BitMatrix(max($width, $height));
 
 		// Quickly calculates the histogram by sampling four rows from the image. This proved to be

+ 1 - 2
src/Decoder/Decoder.php

@@ -37,8 +37,7 @@ final class Decoder{
 	 * @throws \Throwable if the QR Code cannot be decoded
 	 */
 	public function decode(LuminanceSourceInterface $source):DecoderResult{
-		$matrix    = (new Binarizer($source))->getBlackMatrix();
-		$bitMatrix = (new Detector($matrix))->detect();
+		$bitMatrix = (new Detector($source))->detect();
 
 		try{
 			// clone the BitMatrix to avoid errors in case we run into mirroring

+ 4 - 3
src/Detector/Detector.php

@@ -11,6 +11,7 @@
 
 namespace chillerlan\QRCode\Detector;
 
+use chillerlan\QRCode\Decoder\{Binarizer, LuminanceSourceInterface};
 use RuntimeException;
 use chillerlan\QRCode\Common\Version;
 use chillerlan\QRCode\Decoder\BitMatrix;
@@ -30,8 +31,8 @@ final class Detector{
 	/**
 	 * Detector constructor.
 	 */
-	public function __construct(BitMatrix $image){
-		$this->bitMatrix = $image;
+	public function __construct(LuminanceSourceInterface $source){
+		$this->bitMatrix = (new Binarizer($source))->getBlackMatrix();
 	}
 
 	/**
@@ -40,7 +41,7 @@ final class Detector{
 	public function detect():BitMatrix{
 		[$bottomLeft, $topLeft, $topRight] = (new FinderPatternFinder($this->bitMatrix))->find();
 
-		$moduleSize         = (float)$this->calculateModuleSize($topLeft, $topRight, $bottomLeft);
+		$moduleSize         = $this->calculateModuleSize($topLeft, $topRight, $bottomLeft);
 		$dimension          = $this->computeDimension($topLeft, $topRight, $bottomLeft, $moduleSize);
 		$provisionalVersion = new Version((int)(($dimension - 17) / 4));
 		$alignmentPattern   = null;