使用框架ThinkPHP5
我在网上找了一些方法,比较具有参考意义的帖子如下:http://gitlab.szwhg.chaoxing.com/chaoxing/dingxiwhg/tree/master/vendor/khanamiryan/qrcode-detector-decoder
这种方法是使用composer来安装的,我简单说一下流程:
使用composer命令
composer require khanamiryan/qrcode-detector-decoder
安装好之后使用方法如下:
require __DIR__ . "/vendor/autoload.php"; $qrcode = new QrReader(\'图片地址\'); $text = $qrcode->text(); //返回二维码的内容
但是,我用的时候,composer镜像地址被墙,无法下载,只能自己把这个类库下载下来,然后使用,下面就是相关经验:
首先将khanamiryan/qrcode-detector-decoder这个文件下载下来放到项目的vendor目录里面,下载链接:http://gitlab.szwhg.chaoxing.com/chaoxing/dingxiwhg/tree/master/vendor/khanamiryan/qrcode-detector-decoder
如下图:
因为我们是手动复制扩展类库过去的,所以需要在vendor加一些代码,如下:
1.打开vendor/composer/autoload_classmap.php,添加如下代码:
<?php // autoload_classmap.php @generated by Composer $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( \'QrReader\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/QrReader.php\', \'Zxing\\Binarizer\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/Binarizer.php\', \'Zxing\\BinaryBitmap\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/BinaryBitmap.php\', \'Zxing\\ChecksumException\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/ChecksumException.php\', \'Zxing\\Common\\BitArray\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/BitArray.php\', \'Zxing\\Common\\BitMatrix\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/BitMatrix.php\', \'Zxing\\Common\\BitSource\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/BitSource.php\', \'Zxing\\Common\\CharacterSetECI\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/CharacterSetEci.php\', \'Zxing\\Common\\CharacterSetEci\\AbstractEnum\\AbstractEnum\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/AbstractEnum.php\', \'Zxing\\Common\\DecoderResult\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/DecoderResult.php\', \'Zxing\\Common\\DefaultGridSampler\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/DefaultGridSampler.php\', \'Zxing\\Common\\DetectorResult\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/DetectorResult.php\', \'Zxing\\Common\\Detector\\MathUtils\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/detector/MathUtils.php\', \'Zxing\\Common\\Detector\\MonochromeRectangleDetector\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/detector/MonochromeRectangleDetector.php\', \'Zxing\\Common\\GlobalHistogramBinarizer\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/GlobalHistogramBinarizer.php\', \'Zxing\\Common\\GridSampler\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/GridSampler.php\', \'Zxing\\Common\\HybridBinarizer\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/HybridBinarizer.php\', \'Zxing\\Common\\PerspectiveTransform\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/PerspectiveTransform.php\', \'Zxing\\Common\\Reedsolomon\\GenericGF\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/reedsolomon/GenericGF.php\', \'Zxing\\Common\\Reedsolomon\\GenericGFPoly\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/reedsolomon/GenericGFPoly.php\', \'Zxing\\Common\\Reedsolomon\\ReedSolomonDecoder\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/reedsolomon/ReedSolomonDecoder.php\', \'Zxing\\Common\\Reedsolomon\\ReedSolomonException\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/reedsolomon/ReedSolomonException.php\', \'Zxing\\FormatException\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/FormatException.php\', \'Zxing\\GDLuminanceSource\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/GDLuminanceSource.php\', \'Zxing\\IMagickLuminanceSource\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/IMagickLuminanceSource.php\', \'Zxing\\LuminanceSource\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/LuminanceSource.php\', \'Zxing\\NotFoundException\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/NotFoundException.php\', \'Zxing\\PlanarYUVLuminanceSource\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/PlanarYUVLuminanceSource.php\', \'Zxing\\Qrcode\\Decoder\\BitMatrixParser\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/BitMatrixParser.php\', \'Zxing\\Qrcode\\Decoder\\DataBlock\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataBlock.php\', \'Zxing\\Qrcode\\Decoder\\DataMask\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php\', \'Zxing\\Qrcode\\Decoder\\DataMask000\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php\', \'Zxing\\Qrcode\\Decoder\\DataMask001\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php\', \'Zxing\\Qrcode\\Decoder\\DataMask010\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php\', \'Zxing\\Qrcode\\Decoder\\DataMask011\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php\', \'Zxing\\Qrcode\\Decoder\\DataMask100\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php\', \'Zxing\\Qrcode\\Decoder\\DataMask101\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php\', \'Zxing\\Qrcode\\Decoder\\DataMask110\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php\', \'Zxing\\Qrcode\\Decoder\\DataMask111\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php\', \'Zxing\\Qrcode\\Decoder\\DecodedBitStreamParser\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DecodedBitStreamParser.php\', \'Zxing\\Qrcode\\Decoder\\Decoder\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Decoder.php\', \'Zxing\\Qrcode\\Decoder\\ECB\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Version.php\', \'Zxing\\Qrcode\\Decoder\\ECBlocks\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Version.php\', \'Zxing\\Qrcode\\Decoder\\ErrorCorrectionLevel\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/ErrorCorrectionLevel.php\', \'Zxing\\Qrcode\\Decoder\\FormatInformation\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/FormatInformation.php\', \'Zxing\\Qrcode\\Decoder\\Mode\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Mode.php\', \'Zxing\\Qrcode\\Decoder\\Version\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Version.php\', \'Zxing\\Qrcode\\Detector\\AlignmentPattern\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/AlignmentPattern.php\', \'Zxing\\Qrcode\\Detector\\AlignmentPatternFinder\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/AlignmentPatternFinder.php\', \'Zxing\\Qrcode\\Detector\\Detector\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/Detector.php\', \'Zxing\\Qrcode\\Detector\\FinderPattern\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/FinderPattern.php\', \'Zxing\\Qrcode\\Detector\\FinderPatternFinder\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/FinderPatternFinder.php\', \'Zxing\\Qrcode\\Detector\\FinderPatternInfo\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/FinderPatternInfo.php\', \'Zxing\\Qrcode\\QRCodeReader\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/QRCodeReader.php\', \'Zxing\\RGBLuminanceSource\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/RGBLuminanceSource.php\', \'Zxing\\Reader\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/Reader.php\', \'Zxing\\ReaderException\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/ReaderException.php\', \'Zxing\\Result\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/Result.php\', \'Zxing\\ResultPoint\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/ResultPoint.php\', );
2.打开vendor/composer/autoload_files.php,添加如下代码:
<?php // autoload_files.php @generated by Composer $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( \'626dcc41390ebdaa619faa02d99943b0\' => $vendorDir . \'/khanamiryan/qrcode-detector-decoder/lib/common/customFunctions.php\', );
3.打开vendor/composer/autoload_static.php,添加如下代码:
<?php // autoload_static.php @generated by Composer namespace Composer\Autoload; class ComposerStaticInit03c3364a4f1922a40ddcc934d3140c97 { public static $files = array ( \'626dcc41390ebdaa619faa02d99943b0\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/customFunctions.php\', ); public static $classMap = array ( \'QrReader\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/QrReader.php\', \'Zxing\\Binarizer\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/Binarizer.php\', \'Zxing\\BinaryBitmap\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/BinaryBitmap.php\', \'Zxing\\ChecksumException\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/ChecksumException.php\', \'Zxing\\Common\\BitArray\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/BitArray.php\', \'Zxing\\Common\\BitMatrix\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/BitMatrix.php\', \'Zxing\\Common\\BitSource\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/BitSource.php\', \'Zxing\\Common\\CharacterSetECI\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/CharacterSetEci.php\', \'Zxing\\Common\\CharacterSetEci\\AbstractEnum\\AbstractEnum\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/AbstractEnum.php\', \'Zxing\\Common\\DecoderResult\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/DecoderResult.php\', \'Zxing\\Common\\DefaultGridSampler\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/DefaultGridSampler.php\', \'Zxing\\Common\\DetectorResult\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/DetectorResult.php\', \'Zxing\\Common\\Detector\\MathUtils\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/detector/MathUtils.php\', \'Zxing\\Common\\Detector\\MonochromeRectangleDetector\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/detector/MonochromeRectangleDetector.php\', \'Zxing\\Common\\GlobalHistogramBinarizer\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/GlobalHistogramBinarizer.php\', \'Zxing\\Common\\GridSampler\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/GridSampler.php\', \'Zxing\\Common\\HybridBinarizer\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/HybridBinarizer.php\', \'Zxing\\Common\\PerspectiveTransform\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/PerspectiveTransform.php\', \'Zxing\\Common\\Reedsolomon\\GenericGF\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/reedsolomon/GenericGF.php\', \'Zxing\\Common\\Reedsolomon\\GenericGFPoly\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/reedsolomon/GenericGFPoly.php\', \'Zxing\\Common\\Reedsolomon\\ReedSolomonDecoder\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/reedsolomon/ReedSolomonDecoder.php\', \'Zxing\\Common\\Reedsolomon\\ReedSolomonException\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/common/reedsolomon/ReedSolomonException.php\', \'Zxing\\FormatException\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/FormatException.php\', \'Zxing\\GDLuminanceSource\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/GDLuminanceSource.php\', \'Zxing\\IMagickLuminanceSource\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/IMagickLuminanceSource.php\', \'Zxing\\LuminanceSource\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/LuminanceSource.php\', \'Zxing\\NotFoundException\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/NotFoundException.php\', \'Zxing\\PlanarYUVLuminanceSource\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/PlanarYUVLuminanceSource.php\', \'Zxing\\Qrcode\\Decoder\\BitMatrixParser\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/BitMatrixParser.php\', \'Zxing\\Qrcode\\Decoder\\DataBlock\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataBlock.php\', \'Zxing\\Qrcode\\Decoder\\DataMask\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php\', \'Zxing\\Qrcode\\Decoder\\DataMask000\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php\', \'Zxing\\Qrcode\\Decoder\\DataMask001\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php\', \'Zxing\\Qrcode\\Decoder\\DataMask010\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php\', \'Zxing\\Qrcode\\Decoder\\DataMask011\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php\', \'Zxing\\Qrcode\\Decoder\\DataMask100\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php\', \'Zxing\\Qrcode\\Decoder\\DataMask101\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php\', \'Zxing\\Qrcode\\Decoder\\DataMask110\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php\', \'Zxing\\Qrcode\\Decoder\\DataMask111\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php\', \'Zxing\\Qrcode\\Decoder\\DecodedBitStreamParser\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DecodedBitStreamParser.php\', \'Zxing\\Qrcode\\Decoder\\Decoder\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Decoder.php\', \'Zxing\\Qrcode\\Decoder\\ECB\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Version.php\', \'Zxing\\Qrcode\\Decoder\\ECBlocks\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Version.php\', \'Zxing\\Qrcode\\Decoder\\ErrorCorrectionLevel\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/ErrorCorrectionLevel.php\', \'Zxing\\Qrcode\\Decoder\\FormatInformation\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/FormatInformation.php\', \'Zxing\\Qrcode\\Decoder\\Mode\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Mode.php\', \'Zxing\\Qrcode\\Decoder\\Version\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Version.php\', \'Zxing\\Qrcode\\Detector\\AlignmentPattern\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/AlignmentPattern.php\', \'Zxing\\Qrcode\\Detector\\AlignmentPatternFinder\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/AlignmentPatternFinder.php\', \'Zxing\\Qrcode\\Detector\\Detector\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/Detector.php\', \'Zxing\\Qrcode\\Detector\\FinderPattern\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/FinderPattern.php\', \'Zxing\\Qrcode\\Detector\\FinderPatternFinder\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/FinderPatternFinder.php\', \'Zxing\\Qrcode\\Detector\\FinderPatternInfo\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/FinderPatternInfo.php\', \'Zxing\\Qrcode\\QRCodeReader\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/qrcode/QRCodeReader.php\', \'Zxing\\RGBLuminanceSource\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/RGBLuminanceSource.php\', \'Zxing\\Reader\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/Reader.php\', \'Zxing\\ReaderException\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/ReaderException.php\', \'Zxing\\Result\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/Result.php\', \'Zxing\\ResultPoint\' => __DIR__ . \'/..\' . \'/khanamiryan/qrcode-detector-decoder/lib/ResultPoint.php\', ); }
至此,大功告成,调用方法如下:
<?php
namespace app\index\controller;
use think\Controller;
class Index
{
fuction test(){
require ROOT_PATH."/vendor/autoload.php";
$qrcode = new \QrReader(\'N:\phpStudy\WWW\qukuaigou\public\tgcode\1.png\');
echo $qrcode->text();
}
}
以上是我个人亲测可行,转载麻烦注明出处,谢谢!