‪Aspose.Barcode for PHP via Java  24.3
‪Aspose.Barcode for PHP via Java Generation and Recognition API docs
BarCodeReader Class Reference

Inherits BaseJavaClass.

Public Member Functions

 __construct (?string $image, $rectangles, $decodeTypes)
 
 containsAny (... $decodeTypes)
 
 getTimeout ()
 
 setTimeout (int $value)
 
 abort ()
 
 getFoundBarCodes ()
 
 getFoundCount ()
 
 setBarCodeImage (string $resource, ?Rectangle ... $areas)
 
 setBarCodeReadType (int ... $types)
 
 getBarCodeDecodeType ()
 
 exportToXml (string $xmlFile)
 
 getJavaClass ()
 
 getJavaClassName ()
 
 isNull ()
 
 printJavaClassName ()
 

Static Public Member Functions

static construct ($javaClass)
 
static importFromXml ($resource)
 

Protected Member Functions

 init ()
 
 setJavaClass ($javaClass)
 

Detailed Description

BarCodeReader encapsulates an image which may contain one or several barcodes, it then can perform ReadBarCodes operation to detect barcodes.

This sample shows how to detect Code39 and Code128 barcodes.

foreach($reader->readBarCodes() as $result)
{
print("BarCode Type: ".$result->getCodeTypeName());
print("BarCode CodeText: ".$result->getCodeText());
}

Constructor & Destructor Documentation

◆ __construct()

BarCodeReader::__construct ( ?string  $image,
  $rectangles,
  $decodeTypes 
)

BarCodeReader constructor. Initializes a new instance of the BarCodeReader

Parameters
string$resource‪image encoded as base64 string or path to image resource (located in the file system or via http)
Rectangle | array | null$rectangles‪array of object by type Rectangle
int | array | null$decodeTypes‪array of decode types
Exceptions
BarcodeException

Member Function Documentation

◆ abort()

BarCodeReader::abort ( )

◆ construct()

static BarCodeReader::construct (   $javaClass)
static

◆ containsAny()

BarCodeReader::containsAny (   $decodeTypes)

Determines whether any of the given decode types is included into

Parameters
$decodeTypes‪Types to verify.
Returns
‪bool Value is a true if any types are included into.

◆ exportToXml()

BarCodeReader::exportToXml ( string  $xmlFile)

Exports BarCode properties to the xml-file specified

Parameters
string$xmlFile‪The path to xml file
Returns
‪bool Whether or not export completed successfully. Returns True in case of success; False Otherwise

◆ getBarCodeDecodeType()

BarCodeReader::getBarCodeDecodeType ( )

◆ getFoundBarCodes()

BarCodeReader::getFoundBarCodes ( )

Gets recognized BarCodeResult array

This sample shows how to read barcodes with BarCodeReader

$reader->readBarCodes();
for($i = 0; $reader->getFoundCount() > $i; ++$i)
{
print("BarCode CodeText: ". $reader->getFoundBarCodes()[$i]->getCodeText());
}

Value: The recognized BarCodeResult array

◆ getFoundCount()

BarCodeReader::getFoundCount ( )

Gets recognized barcodes count

This sample shows how to read barcodes with BarCodeReader

$reader->readBarCodes();
for($i = 0; $reader->getFoundCount() > $i; ++$i)
print("BarCode CodeText: ".$reader->getFoundBarCodes()[i]->getCodeText());

Value: The recognized barcodes count

◆ getJavaClass()

BaseJavaClass::getJavaClass ( )
inherited

◆ getJavaClassName()

BaseJavaClass::getJavaClassName ( )
inherited

◆ getTimeout()

BarCodeReader::getTimeout ( )

Gets the timeout of recognition process in milliseconds.

$reader = new BarCodeReader("test.png");
$reader->setTimeout(5000);
foreach($reader->readBarCodes() as $result)
print("BarCode CodeText: ".$result->getCodeText());
Returns
‪timeout.

◆ importFromXml()

static BarCodeReader::importFromXml (   $resource)
static

Import BarCode properties from xml file

Parameters
string$resource‪The name of the xml file or path to http resource
Returns
BarCodeReader
Exceptions
BarcodeException

◆ init()

BarCodeReader::init ( )
protected

Reimplemented from BaseJavaClass.

◆ isNull()

BaseJavaClass::isNull ( )
inherited

◆ printJavaClassName()

BaseJavaClass::printJavaClassName ( )
inherited

◆ setBarCodeImage()

BarCodeReader::setBarCodeImage ( string  $resource,
?Rectangle ...  $areas 
)
final

Reads BarCodeResult from the image.

This sample shows how to read barcodes with BarCodeReader
foreach($reader->readBarCodes() as $result)
print("BarCode CodeText: ".$result->getCodeText());
$reader->readBarCodes();
for($i = 0; $reader->getFoundCount() > $i; ++$i)
print("BarCode CodeText: ".$reader->getFoundBarCodes()[i]->getCodeText());
@return array of recognized {@code BarCodeResult}s on the image. If nothing is recognized, zero array is returned.
/
public function readBarCodes(): array
{
try
{
$this->recognizedResults = array();
$javaReadBarcodes = java_values($this->getJavaClass()->readBarCodes());
for ($i = 0; $i < sizeof($javaReadBarcodes); $i++)
{
$this->recognizedResults[$i] = new BarCodeResult($javaReadBarcodes[$i]);
}
return $this->recognizedResults;
}
catch (Exception $e)
{
if (strpos($e->getMessage(), "RecognitionAbortedException"))
{
throw new RecognitionAbortedException($e->getMessage(), null);
}
throw $e;
}
}
/**
* QualitySettings allows to configure recognition quality and speed manually.
* You can quickly set up QualitySettings by embedded presets: HighPerformance, NormalQuality,
* HighQuality, MaxBarCodes or you can manually configure separate options.
* Default value of QualitySettings is NormalQuality.
* @code
* This sample shows how to use QualitySettings with BarCodeReader
*
* $reader = new BarCodeReader("test.png");
* //set high performance mode
* $reader->setQualitySettings(QualitySettings::getHighPerformance());
* foreach($reader->readBarCodes() as $result)
* print("BarCode CodeText: ".$result->getCodeText());
* $reader = new BarCodeReader("test.png", DecodeType::CODE_39_STANDARD, DecodeType::CODE_128);
* //normal quality mode is set by default
* foreach($reader->readBarCodes() as $result)
* print("BarCode CodeText: ".$result->getCodeText());
* $reader = new BarCodeReader("test.png", DecodeType::CODE_39_STANDARD, DecodeType::CODE_128);
* //set high performance mode
* $reader->setQualitySettings(QualitySettings::getHighPerformance());
* //set separate options
* $reader->getQualitySettings()->setAllowMedianSmoothing(true);
* $reader->getQualitySettings()->setMedianSmoothingWindowSize(5);
* foreach($reader->readBarCodes() as $result)
* print("BarCode CodeText: ".$result->getCodeText());
*
* @return QualitySettings to configure recognition quality and speed.
* @throws BarcodeException
*/
public final function getQualitySettings(): QualitySettings
{
try
{
return $this->qualitySettings;
}
catch (Exception $ex)
{
throw new BarcodeException($ex->getMessage(), __FILE__, __LINE__);
}
}
/**
* QualitySettings allows to configure recognition quality and speed manually.
* You can quickly set up QualitySettings by embedded presets: HighPerformance, NormalQuality,
* HighQuality, MaxBarCodes or you can manually configure separate options.
* Default value of QualitySettings is NormalQuality.
* @code
* This sample shows how to use QualitySettings with BarCodeReader
*
* $reader = new BarCodeReader("test.png");
* //set high performance mode
* $reader->setQualitySettings(QualitySettings::getHighPerformance());
* foreach($reader->readBarCodes() as $result)
* print("BarCode CodeText: ".$result->getCodeText());
* $reader = new BarCodeReader("test.png", DecodeType::CODE_39_STANDARD, DecodeType::CODE_128);
* //normal quality mode is set by default
* foreach($reader->readBarCodes() as $result)
* print("BarCode CodeText: ".$result->getCodeText());
* $reader = new BarCodeReader("test.png", DecodeType::CODE_39_STANDARD, DecodeType::CODE_128);
* //set high performance mode
* $reader->setQualitySettings(QualitySettings::getHighPerformance());
* //set separate options
* $reader->getQualitySettings()->setAllowMedianSmoothing(true);
* $reader->getQualitySettings()->setMedianSmoothingWindowSize(5);
* foreach($reader->readBarCodes() as $result)
* print("BarCode CodeText: ".$result->getCodeText());
*
* @param QualitySettings $value QualitySettings to configure recognition quality and speed.
* @throws BarcodeException
*/
public function setQualitySettings(QualitySettings $value): void
{
try
{
$this->getJavaClass()->setQualitySettings($value->getJavaClass());
//$this->qualitySettings = new QualitySettings($this->getJavaClass()->getQualitySettings());
}
catch (Exception $ex)
{
throw new BarcodeException($ex->getMessage(), __FILE__, __LINE__);
}
}
/**
* The main BarCode decoding parameters. Contains parameters which make influence on recognized data.
* @return BarcodeSettings BarCode decoding parameters
*/
public function getBarcodeSettings(): BarcodeSettings
{
return $this->barcodeSettings;
}
/**
* Sets bitmap image and areas for recognition.
* Must be called before ReadBarCodes() method.
*
* This sample shows how to detect Code39 and Code128 barcodes.
* @code
* $bmp = "test.png";
* $reader = new BarCodeReader();
* $reader->setBarCodeReadType(DecodeType::CODE_39_STANDARD, DecodeType::CODE_128);
* $width, $height;
* list($width, $height) = getimagesize('path_to_image')
* $reader->setBarCodeImage($bmp, new Rectangle[] { new Rectangle(0, 0, $width, $height) });
* foreach($reader->readBarCodes() as $result)
* {
* print("BarCode Type: ".$result->getCodeTypeName());
* print("BarCode CodeText: ".$result->getCodeText());
* }
*
Parameters
string$resource‪image encoded as base64 string or path to image resource located in the file system or via http
Rectangle | null$areas‪areas list for recognition
Exceptions
BarcodeException

◆ setBarCodeReadType()

BarCodeReader::setBarCodeReadType ( int ...  $types)

Sets SingleDecodeType type array for recognition. Must be called before readBarCodes() method.

This sample shows how to detect Code39 and Code128 barcodes.

$reader = new BarCodeReader();
$reader->setBarCodeReadType(DecodeType::CODE_39_STANDARD, DecodeType::CODE_128);
$reader->setBarCodeImage("test.png");
foreach($reader->readBarCodes() as $result)
{
print("BarCode Type: ".$result->getCodeTypeName());
print("BarCode CodeText: ".$result->getCodeText());
}
Parameters
array$types‪The SingleDecodeType type array to read.

◆ setJavaClass()

BaseJavaClass::setJavaClass (   $javaClass)
protectedinherited

◆ setTimeout()

BarCodeReader::setTimeout ( int  $value)

Sets the timeout of recognition process in milliseconds.

$reader = new BarCodeReader("test.png");
$reader->setTimeout(5000);
foreach($reader->readBarCodes() as $result)
print("BarCode CodeText: ".$result->getCodeText());
Parameters
value‪The timeout.