mindongji/php-zxing

使用php封装的zxing工具

1.0.4 2018-11-03 05:41 UTC

This package is not auto-updated.

Last update: 2024-09-29 20:22:48 UTC


README

PHPZxing是一个小的php封装,使用Zxing库来创建和读取条形码。在底层,它仍然使用Zxing库来编码和解码数据。

使用composer安装

{  
    "require": {
        "mindongji/php-zxing": "1.0.1"
    }  
}

注意

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

版本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);
        }
    }
}

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

更多示例

您也可以传递图像数组,

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上阅读以下stackoverflow 链接

致谢

贡献

请贡献或提出更改建议。