dsiddharth2/php-zxing

使用php对zxing进行包装

1.0.3 2019-08-30 13:45 UTC

This package is not auto-updated.

Last update: 2024-09-19 12:14:23 UTC


README

PHPZxing是一个使用Zxing库创建和读取条码的小型php包装器。底层仍然使用Zxing库来编码和解码数据。

使用composer安装

{  
    "require": {
        "dsiddharth2/php-zxing": "1.0.3"
    }  
}

注意

  • 目前只编程了解码器。需要编程编码器。
  • 默认配置的java位置是/usr/bin/java

版本1.0.3中的更改

  • 添加了可能格式的工作功能

版本1.0.2中的更改

  • 更新了新的jar文件,并在Windows系统上进行了测试

版本1.0.1中的更改

  • 添加了一个isFound函数,可以告诉条码是否被找到。
  • 如果检测到图像中有一个条码,则返回对象,而不是单个对象的数组。

基本用法

use PHPZxing\PHPZxingDecoder;

$decoder        = new PHPZxingDecoder();
$data           = $decoder->decode('../images/Code128Barcode.jpg');
if($data->isFound()) {
    $data->getImageValue();
    $data->getFormat();
    $data->getType();        
}

如果找到条码,解码数据是PHPZxing\ZxingImage对象的数组。如果没有找到,则是一个PHPZxing\ZxingBarNotFound对象的数组。

检查条码的存在性

可以使用isFound()函数找到条码的存在性

use PHPZxing\PHPZxingDecoder;

$decoder        = new PHPZxingDecoder();
$data           = $decoder->decode('../images/Code128Barcode.jpg');
if($data->isFound()) {
    $data->getImageValue();
    $data->getFormat();
    $data->getType();        
}

您也可以使用instanceof对象进行检查

use PHPZxing\PHPZxingDecoder;

$decoder        = new PHPZxingDecoder();
$data           = $decoder->decode('../images/Code128Barcode.jpg');
if($data instanceof PHPZxing\ZxingImage) {
    $data->getImageValue();
    $data->getFormat();
    $data->getType();
}

我们可以在PHPZxing\ZxingImage中使用以下公共方法

我们可以在PHPZxing\ZxingImage中使用以下公共方法

设置配置

use PHPZxing\PHPZxingDecoder;

$config = array(
    'try_harder'            => true,
);
$decoder        = new PHPZxingDecoder($config);
$decodedArray   = $decoder->decode('../images');
if(is_array($decodedArray)){
    foreach ($decodedArray as $data) {
        if($data->isFound()) {
            print_r($data);
        }
    }
}

您也可以使用配置。解码器有4个配置

更多示例

您也可以传递图像数组

use PHPZxing\PHPZxingDecoder;

$decoder        = new PHPZxingDecoder();
$imageArrays = array(
    '../images/Code128Barcode.jpg',
    '../images/Code39Barcode.jpg'
);
$decodedArray  = $decoder->decode($imageArrays);
foreach ($decodedArray as $data) {
    if($data instanceof PHPZxing\ZxingImage) {
        print_r($data);
    } else {
        echo "Bar Code cannot be read";
    }
}

读取多个条码

use PHPZxing\PHPZxingDecoder;

$config = array(
    'try_harder' => true,
    'multiple_bar_codes' => true
);
$decoder        = new PHPZxingDecoder($config);
$decodedData    = $decoder->decode('../images/multiple_bar_codes.jpg');
print_r($decodedData);

设置Java路径

如果您的java路径没有正确设置,解码器将无法工作。您需要设置java变量的路径。

use PHPZxing\PHPZxingDecoder;

$decoder        = new PHPZxingDecoder();
$decoder->setJavaPath('/your/path/to/java');
$decodedData    = $decoder->decode('../images/Code128Barcode.jpg');
print_r($decodedData);

我的java在哪里?

如果您不知道java的路径,那么您可以在以下*nix环境中使用它

$ which java

在Windows环境中

> where java

有关更多信息,在Windows上请参阅以下stackoverflow链接链接

致谢

贡献

请贡献或提出更改建议。