全面解读Linux环境中PHP7识别二维码(zbarcode)

2024-08-29 00:58

本文主要是介绍全面解读Linux环境中PHP7识别二维码(zbarcode),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PHP识别二维码或条形码需要 3 个工具。

  1. ImageMagick
    ImageMagick 是一个用于查看、编辑位图文件以及进行图像格式转换的开放源代码软件套装。它可以读取、编辑超过 100 种图象格式。ImageMagick 以 ImageMagick 许可证(一个类似 BSD 的许可证)发布。
  2. zbar
    zbar 是一个开源软件套件,用于读取各种来源的条形码,如视频流,图像文件和原始强度传感器。它支持 包括 EAN-13 / UPC-A,UPC-E,EAN-8,Code 128,Code 39,Interleaved 2 of 5 和 QR Code 等多种流行的条码。
  3. php-zbarcode
    php-zbarcode 是 PHP 读取条形码的扩展模块,目前仅支持 php5.x。使用这个模块之前还需要安装 ImageMagick 和 zbar 这两个命令行套件。
    phpzbarcode 依赖于 ImageMagick 和 zbar,zbar 依赖于 ImageMagick,ImageMagick 依赖 jpeg 库来提供 jpeg 图片支持,所以先安装 jpeg 支持。

安装 jpeg 库

//yum安装
#yum install libjpeg
#yum install libjpeg-devel
#yum install libpng
#yum install libpng-devel
#yum install libtiff
#yum install libtiff-devel
#yum install libungif
#yum install libungif-devel
#yum install freetype
#yum install zlib
#pm -qa |grep libjpeg
//二进制安装
#wget http://www.imagemagick.org/download/delegates/jpegsrc.v9b.tar.gz
#tar xf jpegsrc.v9b.tar.gz
#cd jpeg-9b/
#./configure 
#make libdir=/usr/lib64   
#make libdir=/usr/lib64 install  
#rpm -qa |grep libjpeg

安装 ImageMagick

#wget https://www.imagemagick.org/download/ImageMagick.tar.gz
#tar xf ImageMagick.tar.gz
#cd ImageMagick-7.0.7-13
#./configure
#make
#sudo make install
#sudo ldconfig /usr/local/lib
#magick --version

********************************************* 常见错误 *******************************************
出错1:安装好以后使用 magick 、 convert 等相关命令时,加载动态链接库出错
解决方法:设置动态加载动态链接库
sudo ldconfig /usr/local/lib

安装 zbar
下载地址:https://sourceforge.net/projects/zbar/files/zbar/。我下载的最新版 0.10,包名为 zbar-0.10.tar.gz 。

#tar xf zbar-0.10.tar.gz
#cd zbar-0.10/
#sudo ln -s /usr/local/include/ImageMagick-7 /usr/local/include/ImageMagick
#sudo ln -s /usr/local/include/ImageMagick-7/MagickWand /usr/local/include/wand
#./configure --disable-video --without-gtk --without-qt --without-python
#make
#make
#sudo make install
#zbarimg --version

********************************************* 常见错误 ********************************************
出错1:找不到 MagickWand.h 头文件

ImageMagick package found but wand/MagickWand.h not installed?!
-this is a problem with your ImageMagick install,
-please resolve the inconsistency and try again...

解决方法:zbar 的配置文件 ./configure 在运行时会找不到 MagickWand.h,它在 /usr/local/include/ImageMagick-7/MagickWand 目录下,但是 ./configure 执行时会去 wand/ 目录找(找不到),所以需要做两个软连接让 ./configure 能找到 MagickWand.h 文件

#sudo ln -s /usr/local/include/ImageMagick-7 /usr/local/include/ImageMagick
#sudo ln -s /usr/local/include/ImageMagick-7/MagickWand /usr/local/include/wand

出错2:configure: error: Unable to find ImageMagick >= 6.2.6:No package ‘MagickWand’ found
这个错误的原因是cmake找不到imagemagick库,因为你通过apt-get或者yum安装的仅仅是imagemagick,而不包括magickwand的开发包。
解决方案有两个,第一种很简单:
找到libmagickwand-dev这个包进行安装,比如在ubuntu中可以使用以下命令

#sudo apt-get install libmagickwand-dev

如果是centOS的话可能需要自己查找一下类似的包,或者使用方案二。

#sudo yum install ImageMagick-devel

安装对应版本的php-zbarcode扩展,主要看你安装php的版本哟

#wget https://github.com/mkoppanen/php-zbarcode/archive/master.zip
#unzip master.zip
#cd php-zbarcode-master/
#phpize
#./configure --with-php-config=/usr/bin/php-config
#make
#sudo make install

成功后会提示安装到的模块目录

Installing shared extensions:     /usr/lib/php/20131226/

编辑 /etc/php/5.6/apache2/php.ini 文件

sudo vim /etc/php/5.6/apache2/php.ini

最后添加一行

extension=zbarcode.so

重启 apache

sudo /etc/init.d/apache2 restart

这就好了,可以使用条形码扩展了。
注意 php -m 命令显示的是 php-cli 模式启用的扩展,要让 php-cli 模式也启用扩展的话,需要再编辑 cli 模式的配置文件。然后就能使用 php -m 命令看到 zbarcode 模块了。


参考一下他人的劳动成果
WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers
Linux安装ImageMagick与JMagick完成过程及配置
Cmake时报错:Could NOT find ImageMagick
Centos 6.x 上安装php 的 zbarcode 扩展
ImageMagick简明安装部署手册

这篇关于全面解读Linux环境中PHP7识别二维码(zbarcode)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1116392

相关文章

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

MCU7.keil中build产生的hex文件解读

1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

高并发环境中保持幂等性

在高并发环境中保持幂等性是一项重要的挑战。幂等性指的是无论操作执行多少次,其效果都是相同的。确保操作的幂等性可以避免重复执行带来的副作用。以下是一些保持幂等性的常用方法: 唯一标识符: 请求唯一标识:在每次请求中引入唯一标识符(如 UUID 或者生成的唯一 ID),在处理请求时,系统可以检查这个标识符是否已经处理过,如果是,则忽略重复请求。幂等键(Idempotency Key):客户端在每次