文档章节

ImageMagick 的PHP(图片处理)

 自信的水草
发布于 2016/09/07 16:12
字数 829
阅读 69
收藏 0

这次的任务是要做一个图片变成圆形的任务,将上传的图片切割成固定大小的圆形。

首先很屌丝的在自己的windows上安装imagemagick,很好TMD整了老子一上午发现死活搞不定,phpinfo里面死活看不到php_imagick这个扩展,很好我放弃,线上有一个测试环境是linux的我TM用测试环境搞,不用本地的还不行?

这里有个帖子 http://www.111cn.net/sys/linux/48986.htm
yum install ImageMagick
yum install ImageMagick-devel
yum install php-pear
yum -y install php-devel
yum install gcc
pecl install imagick

然后说是加载imagick到php

然后在php.ini里面增加那个扩展的 .so文件

很好,一路爽到底,结果我TM尿了,已启动php就报类似于
Starting php-fpm [07-Sep-2016 16:35:24] NOTICE: PHP message: PHP Warning:  PHP Startup: imagick: Unable to initialize module
Module compiled with module API=20100525
PHP    compiled with module API=20131226
These options need to match
 in Unknown on line 0
 done

这个鬼样子的东西是啥?,后来上网一阵查说是什么扩展的版本和php版本不对应,这TM搞的我心情很是不愉悦。本来还想着pecl这东西好啊,方便啊,这TM第一次用就这么不给面子。

顺便说一下用pecl安装后的.so文件并不在你那个php所在的目录就是类似于 /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226 这样的目录,而在它自己定义的一个目录,这个目录安装完后能看到,千万要记住,否则就去find,装完后还要手动将.so文件移动到扩展目录。

现在这个环境是lnmp的一键安装包,系统是centos7.0,php是5.6,但我用php -v看php竟然是5.4,很好不知道给我搞出了什么幺蛾子。我删!

pecl uninstall imagick
yum remove ImageMagick
我觉得这应该是个好东西,装的这么爽,删的这么爽,应该是本人能力问题,或者运气不好。

很好下面用老办法

1,安装ImageMagick这个步骤的确很烦,还要管那些图片的包,所以我直接yum安装了

yum install ImageMagick
并且要安装
yum install ImageMagick-devel

不然后面编译的时候会报
imaconfigure: error: not found. Please provide a path to MagickWand-config or Wand-config program.


2,然后安装php扩展 Imagick 
去 http://pecl.php.net/package/imagick 找一个

我用的 http://pecl.php.net/get/imagick-3.1.1.tgz

wget http://pecl.php.net/get/imagick-3.1.1.tgz
tar -xzvf imagick-3.1.0RC1
cd imagick-3.1.1
phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-imagick=/usr/local/imagemagick
make
make install
配置文件个路径根据自己的来
之后再我的 /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226下面会多一个imagick.so
然后给该so增加权限

cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226
chmod 755 ./imagick.so

下面重启php
service php-fpm restart

不出意外地话(已经出了很多意外了)就能看到这个扩展了。

很好这TM才是开始,我还没有吧图片变成圆形。
$headimg是我图片上传后的路径,框架用的tp

$image = new \Imagick( $_SERVER['DOCUMENT_ROOT'] .  $headimg);
$image->setImageFormat('png');
//因为需求所以将图片缩放成 84*84,后面两个参数我也不知道啥意思,随便填的。
$image->resizeImage( 84, 84, \Imagick::FILTER_UNDEFINED, 1 );
//然后变成圆形
$image->roundCorners($image->getImageWidth() / 2, $image->getImageHeight() / 2);
//最后重新写入图片
$image->writeImage();
//销毁
$image->destroy();

任务结束

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 68
码字总数 10572
作品 0
南京
私信 提问
ImageMagick图片处理工具

ImageMagick是一套Linux下的开源图形处理 工具,针对几乎所有的图片格式提供比较全面的图片处理功能。不像windows下的photoshop,先要双击运行,然后打开图片,然后才能对图片进行 处理,Ima...

红薯
2009/01/25
1K
0
Linux下php+imagemagick的图片处理环境安装(支持webp格式)

ImageMagick是一款功能强大的图片处理工具包,很多互联网应用中都会涉及到图片处理工作,比如切割、缩放、水印、格式转换等。ImageMagick就是一个理想的工具包。这里主要记录一下Linux RedHa...

豌豆
2013/10/16
0
1
PHP扩展MagickWand

简介 MagickWand 是PHP的一个扩展程序,通过它建立起与ImageMagick的交互,进行图片的处理。它是默认的GD图象函数库的绝佳替代方案。从安全性和易用性来说,在PHP中使用MagickWand比使用命令...

Junn
2013/09/06
0
0
ImageMagick 6.9.2-4 发布,图片处理软件

ImageMagick 6.9.2-4 发布,此版本更新内容如下: Fixed accessing subimage in a TIFF photoshop layer (reference http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=2846......

oschina
2015/10/11
1K
4
ImageMagick安装配置说明

Imagemagick 是一个开源的图片处理软件,他使用命令行进行各种格式的图片的操作,可以运行在windows下和linux下。他的功能非常强大,能进行大小、格式、水印、标签等各种图象处理。在PHP中用...

星痕2018
2012/03/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 升级中的一些常见问题

升级的时候遇到了问题了吗? 如果你想尝试重新进行升级的话,你需要首先重新恢复老的备份。不要尝试再次对 Confluence 进行升级或者在升级失败后重新启动老的 Confluence。 在升级过程中的一...

honeymoose
今天
2
0
C++随笔(四)Nuget打包

首先把自己编译好的包全部准备到一个文件夹 像这样 接下来新建一个文本文档,后缀名叫.nuspec 填写内容 <?xml version="1.0"?><package xmlns="http://schemas.microsoft.com/packaging/201......

Pulsar-V
今天
2
0
再谈使用开源软件搭建数据分析平台

三年前,我写了这篇博客使用开源软件快速搭建数据分析平台, 当时收到了许多的反馈,有50个点赞和300+的收藏。到现在我还能收到一些关于dataplay2的问题。在过去的三年,开源社区和新技术的发...

naughty
今天
11
0
Python3的日期和时间

python 中处理日期时间数据通常使用datetime和time库 因为这两个库中的一些功能有些重复,所以,首先我们来比较一下这两个库的区别,这可以帮助我们在适当的情况下时候合适的库。 在Python文...

编程老陆
今天
2
0
分布式面试整理

并发和并行 并行是两个任务同时进行,而并发呢,则是一会做一个任务一会又切换做另一个任务。 临界区 临界区用来表示一种公共资源或者说是共享数据,可以被多个线程使用,但是每一次,只能有...

群星纪元
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部