136 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php
 | |
| /*
 | |
|  * Copyright 2007 ZXing authors
 | |
|  *
 | |
|  * Licensed under the Apache License, Version 2.0 (the "License");
 | |
|  * you may not use this file except in compliance with the License.
 | |
|  * You may obtain a copy of the License at
 | |
|  *
 | |
|  *      http://www.apache.org/licenses/LICENSE-2.0
 | |
|  *
 | |
|  * Unless required by applicable law or agreed to in writing, software
 | |
|  * distributed under the License is distributed on an "AS IS" BASIS,
 | |
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
|  * See the License for the specific language governing permissions and
 | |
|  * limitations under the License.
 | |
|  */
 | |
| 
 | |
| namespace Zxing;
 | |
| 
 | |
| /**
 | |
|  * <p>Encapsulates the result of decoding a barcode within an image.</p>
 | |
|  *
 | |
|  * @author Sean Owen
 | |
|  */
 | |
| final class Result
 | |
| {
 | |
|     private $text;
 | |
|     private $rawBytes;
 | |
|     private $resultPoints;
 | |
|     private $format;
 | |
|     private $resultMetadata;
 | |
|     private $timestamp;
 | |
| 
 | |
|     public function __construct(
 | |
|         $text,
 | |
|         $rawBytes,
 | |
|         $resultPoints,
 | |
|         $format,
 | |
|         $timestamp = ''
 | |
|     ) {
 | |
| 
 | |
|         $this->text           = $text;
 | |
|         $this->rawBytes       = $rawBytes;
 | |
|         $this->resultPoints   = $resultPoints;
 | |
|         $this->format         = $format;
 | |
|         $this->resultMetadata = null;
 | |
|         $this->timestamp      = $timestamp ?: time();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @return raw text encoded by the barcode
 | |
|      */
 | |
|     public function getText()
 | |
|     {
 | |
|         return $this->text;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @return raw bytes encoded by the barcode, if applicable, otherwise {@code null}
 | |
|      */
 | |
|     public function getRawBytes()
 | |
|     {
 | |
|         return $this->rawBytes;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @return points related to the barcode in the image. These are typically points
 | |
|      *         identifying finder patterns or the corners of the barcode. The exact meaning is
 | |
|      *         specific to the type of barcode that was decoded.
 | |
|      */
 | |
|     public function getResultPoints()
 | |
|     {
 | |
|         return $this->resultPoints;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @return {@link BarcodeFormat} representing the format of the barcode that was decoded
 | |
|      */
 | |
|     public function getBarcodeFormat()
 | |
|     {
 | |
|         return $this->format;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @return {@link Map} mapping {@link ResultMetadataType} keys to values. May be
 | |
|      *   {@code null}. This contains optional metadata about what was detected about the barcode,
 | |
|      *   like orientation.
 | |
|      */
 | |
|     public function getResultMetadata()
 | |
|     {
 | |
|         return $this->resultMetadata;
 | |
|     }
 | |
| 
 | |
|     public function putMetadata($type, $value)
 | |
|     {
 | |
|         if ($this->resultMetadata === null) {
 | |
|             $this->resultMetadata = [];
 | |
|         }
 | |
|         $resultMetadata[$type] = $value;
 | |
|     }
 | |
| 
 | |
|     public function putAllMetadata($metadata)
 | |
|     {
 | |
|         if ($metadata !== null) {
 | |
|             if ($this->resultMetadata === null) {
 | |
|                 $this->resultMetadata = $metadata;
 | |
|             } else {
 | |
|                 $this->resultMetadata = array_merge($this->resultMetadata, $metadata);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public function addResultPoints($newPoints)
 | |
|     {
 | |
|         $oldPoints = $this->resultPoints;
 | |
|         if ($oldPoints === null) {
 | |
|             $this->resultPoints = $newPoints;
 | |
|         } else if ($newPoints !== null && count($newPoints) > 0) {
 | |
|             $allPoints          = fill_array(0, count($oldPoints) + count($newPoints), 0);
 | |
|             $allPoints          = arraycopy($oldPoints, 0, $allPoints, 0, count($oldPoints));
 | |
|             $allPoints          = arraycopy($newPoints, 0, $allPoints, count($oldPoints), count($newPoints));
 | |
|             $this->resultPoints = $allPoints;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public function getTimestamp()
 | |
|     {
 | |
|         return $this->timestamp;
 | |
|     }
 | |
| 
 | |
|     public function toString()
 | |
|     {
 | |
|         return $this->text;
 | |
|     }
 | |
| }
 |