php安装imagick扩展
imagick相对于GD库有更好的图像处理函数支持,滤镜、模糊、旋转的处理效率比GD高很多,对于GIF的处理也更得心应手,imagick还支持3D图像效果。
imagick相对于GD库有更好的图像处理函数支持,滤镜、模糊、旋转的处理效率比GD高很多,对于GIF的处理也更得心应手,imagick还支持3D图像效果。
环境要求
- php > 5.4.0 & ImageMagick >= 6.5.3-10
- 必须先安装ImageMagick,因为php的Imagick扩展支持的图像格式取决于本地ImageMagick所支持的格式。这个扩展的本质也是调用本地ImageMagick处理图像。
安装ImageMagick
// 1. 下载ImageMagick
wget http://www.imagemagick.org/download/ImageMagick.tar.gz// 2. 解压
tar xvzf ImageMagick.tar.gz// 3. 配置和编译
cd ImageMagick-7.0.3-2
./configure
make// 4. 安装
make install// 5. 配置动态链接库
ldconfig /usr/local/lib// 6. 测试是否安装成功,如果安装目录有logo.gif图片并显示正常则说明安装成功
convert logo: logo.gif
// convert a.png -resize 50% b.png
安装php的imagick扩展
// 1. 下载最新版本
wget http://pecl.php.net/get/imagick-3.4.3RC1.tgz// 2. 使用pear安装扩展
pear install imagick-3.4.3RC1.tgz// 3. 在php.ini中添加extension=imagick.so// 4. 重启php-fpm后查看phpinfo中已经有了imagick扩展
安装过程中报错:
ERROR: '/tmp/pear/temp/imagick/configure --with-php-config=/usr/bin/php-config --with-imagick' failed
原因是没有安装ImageMagick devel包,安装即可:
apt-get install libmagickwand-dev libmagickcore-dev
// 安装ImageMagick devel包后再执行pear安装imagick扩展
pear install imagick-3.4.3RC1.tgz
使用php的imagick扩展处理jpeg和png格式的图片报错:
no decode delegate for this image format 'JPEG' @ error/constitute.c/ReadImage/508
<?php
header('Content-type: image/png');
$im = new imagick('http://noavatar.csdn.net/6/C/4/1_linxinzheng.jpg');
//$im = new imagick('http://images.cnitblog.com/blog2015/598639/201503/222347188449376.png');
$im->setImageFormat('png');
echo $im;
die;
// 查看一下ImageMagick支持的图像格式,发现没有JPEG
convert -list format | grep JPEG
原因是在build ImageMagick的时候没有加载相应的扩展库,先下载对应的图像库,然后重新编译安装ImageMagick即可。
// 安装libjpeg库
wget http://www.ijg.org/files/jpegsrc.v9b.tar.gz
./configure
make
make install// 重新安装ImageMagick
cd ImageMagick-7.0.3-2
./configure
make
make install
重启php-fpm后再次调用,报错Wrong JPEG library version: library is 80, caller expects 90
,原因是Ubuntu16.04目前支持的libjpeg最高版本是libjpeg8c,而我刚才安装的是9b,重新安装8c版本即可(也可以看看当前系统支持的libjpeg版本然后下载对应的libjpeg扩展)。
//cd /usr/local/lib
//ls -la | grep jpeg
// libjpeg.so -> libjpeg.so.8.3.0
wget wget http://www.ijg.org/files/jpegsrc.v8c.tar.gz
重新编译安装libjpeg、IM后重启fpm,调用成功perfect
Windows下wampserver64安装
- 下载ImageMagick(http://windows.php.net/downloads/pecl/deps/),解压后将bin目录路径加入环境变量。
- 下载
imagick(http://windows.php.net/downloads/pecl/releases/imagick/3.4.3rc1/),在php的ext目录下新建文件夹imagick,将下载包解压到imagick目录下。 - 将ImageMagick中bin目录下的所有dll文件,复制到php的ext/imagick目录下(不要覆盖)。
- 在php.ini中添加一行
extension=E:\wamp64\bin\php\php5.6.19\ext\imagick\php_imagick.dll
。 - 重启wampserver。
踩到的坑
ImageMagick可以读、写、操作百万级(mega-),亿兆级(gita-),甚至是特拉级(tear-)像素的图片。不过很多图片格式都有上限,比如PS最大支持300000px的宽和高。对于大图片,ImageMagick会在本地磁盘创建一个pixel cache,如果本地磁盘容量不够,可以指定缓存路径:
convert -define registry:temporary-path=/data/tmp input.png -resize 250000x250000 output.jpg
ImageMagick默认是在内存中处理图片,为了不让大图片耗尽内存,可以给ImageMagick分配可使用的内存大小,超过内存则自动开辟磁盘缓存空间:
convert -define registry:temporary-path=/data/tmp -limit memory 16mb input.png -resize 250000x250000 output.jpg
当然也可以只使用硬盘,不用内存:
convert -define registry:temporary-path=/data/tmp -limit area 0 input.png -resize 250000x250000 output.jpg
实际使用中,就遇到convert命令在生成失败或者并发大,以及处理大图片的时候,有些临时文件删除不彻底,导致网站根目录会有临时文件残留,可通过-define registry:temporary-path=/tmp
指定临时目录解决。
php安装imagick扩展相关推荐
- osx php7 imagick,[PHP] MacOS 自带php环境安装imagick扩展踩坑记录 | 码农部落
前言 最近学习yii2,在搭建环境后,发现在访问contact页面时报错,如下: "Either GD PHP extension with FreeType support or Imag ...
- phpstudy安装imagick扩展
phpstudy默认是没有安装imagick扩展的,需要自己下载imagick扩展. 第一步.安装imageMagick软件 在安装imagick扩展之前需要先安装imageMagick 下载地址:h ...
- wamp环境下安装imagick扩展
先上图,如下是安装成功后的phpinfo()界面: 安装步骤: 1.先确定安装版本,比如我的的php : php7.0.12 x86 ts 那么就需要三方版本 要一致:imagick软件本身( 如x ...
- phpstudy安装imagick扩展库怎么装
最近的PHP项目中,需要用到切图和缩图的效果,在linux测试服务器上很轻松的就安装好php imagick扩展.但是在本地windows开发环境,安装过程遇到好多问题,在此与大家分享. 1. 下载 ...
- php imagick 滤镜,PHP安装imagick扩展踩过的坑
微信公众号:网管小贾 个人博客:www.sysadm.cc 环境背景:WAMP(PHP7.1.9 + Apache2.4.27) 最近需要使用到图形添加水印等操作,于是找到了 Intervention ...
- linux php imagick 扩展安装,linux下为php5.3安装Imagick扩展
imagick是一个PHP的扩展,它调用ImageMagick提供的API来进行图片的操作 ImageMagick是一套软件系列,主要用于图片的创建.编辑以及转换等,详细的解释见ImageMagick ...
- php7 imagick扩展,php7安装imagick扩展
使用php7,通过加载pdf文件,生成图片,需要用到imagick扩展,下面是如何安装该扩展 php使用7.1版本,操作系统为centos6版本 1.首先linux下,通过yum 安装依赖包 yum ...
- php7.2 如何安装imagick扩展
imagick扩展包地址: https://pecl.php.net/package/imagick 1.安装所需依赖,如果在编译时还提示缺少其他依赖,请自行安装 yum install autoco ...
- windows环境php安装imagick扩展
1. 检查环境 phpinfo()检查安装的php版本是线程安全(TS) or 非线程安全(NTS),64位 or 32位. 2. 下载安装php_imagick.dll扩展 下载地址:https:/ ...
最新文章
- 区块链经济时代得“先机”者得天下!
- angular2集成highchart
- 有符号数据的符号位扩展
- ADDCOMPONENT之后立即(同步)调用AWAKE,但START却是所有AWAKE完成后才调用 的(异步)...
- centos eclipse 安装
- P7044-[MCOI-03]括号【组合数学】
- 物联网-移远M26模块OpenCPU开发第1讲
- 互联网十几年 我们错失了哪些创业机会
- Python迭代列表
- rstudio线性回归_R语言如何做多元线性回归?以例子说明?
- 【信号与系统|吴大正】4:信号分解、傅里叶变换与信号谱(上)
- ie8兼容性视图灰色修复_win8系统设置IE8浏览器兼容性视图的方法
- Git学习笔记:版本回滚
- petalinux 前端包管理器(dnf)
- 解决 Error starting userland proxy: listen tcp 0.0.0.0:6379: bind: address already in use
- 搜狐全体员工遭遇工资补助诈骗,CEO张朝阳回应:没那么严重
- 关于TKK失败问题(亲测有用 超详细)
- 卖旧手机时恢复出厂设置就能不泄露数据?微信官方辟谣了!
- [BZOJ3895]取石子
- 《数据可视化技术》 太平洋汽车销售分析