WEB技术之后端技术

win7下Appserv或Xampp安装imagemagick以及php的imagick扩展教程并生成GIF缩略图(2018年版)

PHPer 2018-02-02 139次浏览 0条评论 0 0 0
PHP项目中,需要用到切图和缩图的效果,在linux测试服务器上很轻松的就安装好php imagick扩展。但是在本地windows开发环境,安装过程遇到好多问题,在此与大家分享。这里...

PHP项目中,需要用到切图和缩图的效果,在linux测试服务器上很轻松的就安装好php imagick扩展。但是在本地windows开发环境,安装过程遇到好多问题,在此与大家分享。这里的方法时候php5到php7

1. 下载 ImageMagick

优先下载地址:http://windows.php.net/downloads/pecl/deps/ 这里有低版本的

(注意这里下载的版本不能太高,不然运行不起来,这个版本是我测试正常的):


ImageMagick-6.9.3-7-vc14-x64.zip

备选下载地址:http://imagemagick.org/script/download.php#windows

下载最新版本 :ImageMagick-7.0.7-22-Q16-x64-dll.exe (注意这里的7.07是ImageMagick的版本,不是php对应的版本,)

(注:其实应该先安装php的imagick扩展再安装ImageMagick,根据imagick的版本安装对应版本的ImageMagick,我会在后面再细说。)

2. 安装 ImageMagick
安装 ImageMagick 到 PC 上。安装路径不能出现空格,否则无法使用(有空格发觉ImageMagick也能用)。安装时,一点选中把执行路径添加到 path 上,否则你就得手动去添加 path 路径了。

3. 测试安装

为了验证工作正常,在命令提示符窗口(win+r -> “cmd” -> Enter)输入以下:

magick logo: logo.gif
magick identify logo.gif
magick logo.gif win:

第一行命令会在当前目录下生成一个logo.gif图片

第二行命令会输出

D:\AppServ\www\test>magick identify logo.gif

logo.gif GIF 640x480 640x480+0+0 8-bit sRGB 256c 28576B 0.000u 0:00.000

第三行命令会打开这个gif文件,漂亮吧

f9ceb73a93-logo.gif

如果有任何其他问题,你可能需要 vcomp120.dll. 为了安装它, 下载 Visual C++ 2013 Redistributable Package.

4. 下载 php扩展 php_imagick.dll

首选下载地址:https://pecl.php.net/package/imagick

下载地址:https://pecl.php.net/package/imagick/3.4.3/windows

备用下载地址 http://www.peewit.fr/imagick/

dyn = dynamic, st = static, q16 = 16 bit, q8= 8 bit.

以上标识,同你下载的ImageMagick下载标识相同,本人用的是q16

5. 把dll文件重命名为php_imagick.dll,并放到php 扩展文件目录 php/ext 中。

6. 在 php.ini 配置文件中添加,extension=php_imagick.dll。

Appserv或XAMPP把CORE_RL_bzlib_.dll等除php_imagick.dll文件之外的文件放到对应的Appserv/Apache24/bin或xampp\apache\bin下,重启apache,如果没问题的话,就ok了。

如果你还没安装ImageMagick的话,安装了imagick扩展成功后显示是下面这样的

dedcf0724c-imagemagick02.jpg

如果已经安装了ImageMagick,正常的话显示应该是下面这样的。

7. 重启电脑,只重启apache不管用的情况下,重启下PC。因为扩展底层使用的是imageMagic软件,所以软件重启电脑,重新加载软件,并刷新path路径。

8. 重启后,打开 phpinfo页面,查看,扩展已经安装成功。如果还未安装成功,极有可能imagemagick软件版本过高,请选择更低一级的版本安装。

9. PHP测试代码,生成gif动态缩略图

<?php 
$image = new Imagick('old.gif'); 
$image = $image->coalesceImages(); 
foreach ($image as $frame) { 
$frame->thumbnailImage(47, 20); 
} 
$image = $image->optimizeImageLayers(); 
$image->writeImages('new.gif', true); 
?> 

10. 查看手册,学习API

相关扩展学习手册地址 http://uk3.php.net/manual/zh/book.imagick.php 手册中包含大量易用实例。

这里还有查看命令行参数的文档 http://www.imagemagick.org/Usage/



下面是网上找的另一个文章,这个讲的比较详细,但是不全面,对于Apache服务器用Appserv和Xampp集成的情况没讲到
...

登录 | 立即注册

更新于:2018-02-05 23:26:41

CentOS7下安装ImageMagick和PHP Imagick扩展

imagick是一个PHP的扩展,用ImageMagick提供的API来进行图片的创建与修改,不过这些操作已经包装到扩展imagick中去了,最终调用的是ImageMagick提供的API.


ImageMagick是一套软件系列,主要用于图片的创建、编辑以及转换等,详细的解释见ImageMagick的官方网站http://www.imagemagick.org/,ImageMagick与GD的性能要高很多,如果是在处理大量的图片时更加能体现ImageMagick的性能。

方法一:


1. 下载安装ImageMagick

  1. wget ftp://mirror.aarnet.edu.au/pub/imagemagick/ImageMagick-6.6.8-10.tar.gz
  2. tar -xzvf ImageMagick-6.6.8-10.tar.gz
  3. ./configure --prefix=/usr/local/imagemagick
  4. make
  5. make install

2. 下载安装Imagick (php扩展)
注:安装该扩展不要求安装ImageMagick
从http://pecl.php.net/package/imagick找到imagick的最新的版本


Linux代码

  1. wget http://pecl.php.net/get/imagick-3.1.0RC1.tgz
  2. tar -xzvf imagick-3.1.0RC1
  3. phpize
  4. ./configure --with-php-config=/usr/local/php/bin/php-config --with-imagick=/usr/local/imagemagick
  5. make
  6. make install

make install执行结果显示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
Installing header files: /usr/local/php/include/php/



生成imagick.so到/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/,然后手动配置php.ini使其生效

方法二:(注:此法可能会遇到你已经安装了php-pear和php-devel以及php ggc,如果已经安装会提示已经安装的confilct冲突,那么就无需安装了,直接跳到下一步)

1. 依次运行以下命令
  yum install ImageMagick
  yum install ImageMagick-devel
  yum install php-pear
  安装php-pear是为了使用pecl 中的 phpize
  yum -y install php-devel
  2. 安装C编译器
  yum install gcc
  如果装不了gcc就用这个命令:
  yum install gcc gcc-c++ autoconf automake
  3. 安装imagick
  pecl install imagick
  4. 加载imagick到php
  在/etc/php.ini 加上extension=imagick.so ...

    您需要登录后才可以评论。 登录 | 立即注册
    相关内容

    Yii2小部件Widget

    Widgets 小部件kop/yii2-scroll-pager:瀑布滚动翻页 样式不怎么好看,必须点击更多才能加载更多yii2-widget-linkpager:带分页大小的分页栏 用了,还不错的yii2-ajaxf...

    在太保工作中遇到的互联网以及内网问题记录

    外网访问m6理赔系统时,在影像上传时提示,IE已经对页面进行了修改,以帮助阻止跨站脚本。影像上传的SunApp已经安装,IE的安全设置也设了,还是不行,梁老师说关掉...

    IE如何取消阻止跨站脚本

    电销三期打印要安装PageOn的问题

    一些公司网址浏览器兼容性问题

    网址打开页面显示不全,增值税管理系统页面显示不全

    ​UCStar 聊天记录存在哪里

    内网用UcStar聊天记录文件存放路径

    公司内网浏览器设置问题

    各种应用安装包括驱动程序都要内网的管理员账号才能安装

    超省心游戏加速:Wireguard+udp加速(CentOS版)--(实测:超不省心),以后搜帖...

    Wireguard+udpspeeder+udp2raw游戏加速方案 ---------------------------------------错误报告及解决-----------...

    wireguard+udpspeeder+udp2raw多用户配置

    Wireguard+udpspeeder+udp2raw游戏加速方案改进版-实测有效

    WEB技术

    什么是WEB技术?下面会分前端技术和后端技术分别探讨。20180203未完待续。

    WEB技术之前端技术

    WEB技术之后端技术

    WEB应用转手机APP,手机APP制作平台推荐

    WEB应用与手机APP

    Android相关

    2017 年 Web 开发工程师技术发展路线图

    推荐内容

    MySQL数据库设计总结

    规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字...

    什么是B-Tree

    二叉查找树、平衡二叉树、红黑树、B-/B+树性能对比

    使用Yii2遇到的问题整理

    Yii的东西很多,学习和使用的时候遇到了各种各样的问题,这里记录整理下,方便大家分享。composer安装kartik-v/yii2-mpdf时报错,这里记录下 Yii2用compos...

    Yii2用composer更新时遇到的错误

    Yii2 用composer update 时提示'git' 不是内部或外部命令,也不是可运行的程序或批处理文件

    Yii2​用composer安装kartik-v/yii2-mpdf时报错,成功解决后,再让其支持中文。

    使用Yii2的setFlash和bootstrap.min.js遇到的问题,bootstrap.min.js的bug?

    Yii2的action不支持大小写吗?其实是支持的

    composer install 使用tips-网上找的composer install的使用技巧方法

    关于编程时遇到意想不到的错误如何解决

    比如当你写的一个php脚本执行出现问题,如果你的脚本里自己带了对错误的处理,可能会显示那里出错了。或者你用的框架,框架里有debug模式,会报错。

    使用Laravel 5.4问题总结

    这里写下laravel5.4的总结,用laravel也有段时间了,优点就不用多说了,好上手,较易学较易用,blade模板是非常的好用,等等。laravel的缺点有几个,灵活性一般,框架稍...

    使用Laravel 5.4问题总结 Lost connection to MySQL server at 'reading initial communication ...

    Laravel 5.4各种错误提示总结

    localStorage介绍和使用

    一、什么是localStorage、sessionStorage在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(co...

    localStorage的使用

    localStorage其他注意事项