PHP7.0 安装 imageMagick 以及用于PDF转Image和二维码识别

179 阅读2分钟

PHP7.0 安装 imageMagick 以及用于PDF转Image和二维码识别

一、安装 ImageMagick 安装步骤: 1). 先确定你使用的php版本情况,比如王奇疏的pc是win7的php : php5.4 x86 ts 那么就需要三方版本 要一致:imagick软件本身( 如x86 )、php本身( x86 ts (thread safe) )、php扩展php_imagick.dll (ts) 。 2).在已经安装了php的情况下,需要下载2个软件: imagick软件本身、php扩展php_imagick.dll扩展包: imagick软件本身: imagemagick.org/script/bina… 3).安装软件和配置 安装imagick软件本身,一直下一步即可; 安装php扩展插件:php_imagick.dll ,同其他php dll插件一样。 ①.从php扩展压缩包中将php_imagick.dll 拖到/php/ext 目录下, ②.在php.ini开启插件 extension=php_imagick.dll , ③. 从扩展压缩包中将多个 CORE_RL_.dll 文件拖到 /php/ 目录下(否则重启apache或者 命令行 php -ri imagick 调试时报错找不到.dll ) 4). 重启Apache,查看 phpinfo() 中是否有 Imagick 项,如果有说明安装成功。 5). 需要另外 新建一个系统环境变量名为MAGICK_HOME,值为E:你的imagick路径modulescoders, 这步主要用来定位imagemagick的module,很重要。( 否则支持的图片格式数量默认为0, 无法处理图片。 ImageMagick number of supported formats: => 0 ) 如果没有Imagick 项,请 使用 php扩展调试命令 来检查扩展中存在的问题, 并确保三方软件版本一致即可。

php扩展 调试命令: 在cmd运行: php --ri imagick

** 1. 如果报错是:“php_imagick.dll' - %1 不是有效的 Win32 应用程序” ,则说明版本不相符合。 需要检查 imagick软件本身( 如x86 )、php本身( x86 ts (thread safe) )、php扩展php_imagick.dll (ts) 三方版本 要一致。 2. 如果报错是:“php.exe - 系统错误 ,无法启动此程序因为计算机丢失CORE_RL_wand_.dll ” , 说明你没有将 php_imagick-3.3.0-5.4-ts-vc9-x86.zip 扩展包中的“CORE_.dll” 这些dll文件 放到 你的php.exe同级目录下。 ,只需要拷贝 CORE_.dll 到php目录就可以解决了。 3. 如果php --ri imagick 显示的结果 ImageMagick number of supported formats: => 0 支持的图片格式数量为0,请看第5步需要新建一个环境变量。 4. 如果php代码执行调用时报错:“ NoDecodeDelegateForThisImageFormat ”,表明你的php_imagick.dll的版本 并不支持或并不匹配 ImageMagick软件版本,这时候 php --ri imagick 的结果也显示为: ImageMagick number of supported formats => 0 。需要更换ImageMagick软件版本。 ** 文件下载地址:windows.php.net/downloads/p… 二、安装GhostScript 1.下载地址www.ghostscript.com/releases/gs… 2. 安装Ghostscript 3. 配置Ghostscript 文件类型

三、使用Ghostscript实现PDF转Image

	use Org_Heigl\Ghostscript\Ghostscript;
		
	public function pdfToImage($pdfName){
		Ghostscript::setGsPath("D:\gs10.00.0\bin\gswin32c.exe");
        $pdfPath = FILE_PATH.$pdfName;
        $pdfName = $pdfName;
        $fullPath = ROOT_PATH.'pdftoimg\\'.$pdfName.'.jpg';//图片保存地址
        if(!extension_loaded('imagick')){
            return false;
        }
        if(!file_exists($pdfPath)) {
            return false;
        }
        $pdfToImg = new Pdf($pdfPath);
        $pdfToImg->saveImage($fullPath);
        if(file_exists($fullPath)){
            return $fullPath;//图片地址数组
        }else{
            return false;
        }
    }

四、使用QrCodeReader进行二维码识别(前提安装好ImageMagick)