正在加载周涛博客
自留地
切勿乱来!
        找回密码

CentOS 7 安装ImageMagick及PHP7扩展

先介绍一下ImageMagick为何物

ImageMagick是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布,它遵守GPL许可协议,可以运行于大多数的操作系统,ImageMagick的大多数功能的使用都来源于命令行工具。

什么是imagick

imagick是一个PHP的扩展,是用ImageMagick提供的API来进行图片的操作,不过这些操作已经包装到扩展imagick中去了,最终调用的是ImageMagick提供的API,所以使用imagick首先要安装ImageMagick。

什么是GD库

GD库是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片,也可以给图片加水印。

使用imagick的初衷

常规的服务器处理图片,比如服务器上传的图片的裁剪和缩放,打水印,我们都采用了GD库进行的操作,可以说大部分网站都采用了GD库处理的图片!只有GD库不再满足需求才会更换成其他的,比如现在要说的imagick

最近发现上传超分辨率图片就会失败,何为超分辨率图片,其实是我自己定义的,分辨率宽度大于1200px,高度大于4000px,极有可能会上传失败!后经过排查,memory_limit需要足够大才行!这也成为内存开销大户了,长图耗费的内存大于128M内存,甚至更高!并且失败几率也很大!

所以选择来去,使用imagick会更好!以下为CentoOS7+PHP7的安装方式,其他版本大同小异:

首先安装 ImageMagick

yun install ImageMagick

安装完成后执行

convert -version

如果安装成功会显示你安装的ImageMagick版本号

然后再开始安装 imagick

wget http://pecl.php.net/get/imagick-3.4.3.tgz

tar -zxvf imagick-3.4.3.tgz

cd imagick-3.4.3

phpize

./configure --with-php-config=/usr/local/php/bin/php-config --with-imagick=/usr/local/imagemagick

make && make install

make install结束后,会告知你编译后的扩展so存放位置,一般在PHP用户自定义扩展库里,这个不需要管他。

然后打开php.ini,在最下面增加一行

extension = imagick.so

重启php-fpm,做个PHPinfo探针就可以看到imagick扩展了

顺便说下imagick扩展的用法

用法未必通用,但类似

if(extension_loaded('imagick')){//判断是否支持imagick扩展
			$imagick = new \Imagick($image);
			$w = $imagick->getImageWidth();
			$h = $imagick->getImageHeight();
			if ($w > $width || $h > $height) {
					$imagick->cropThumbnailImage($createwidth, $createheight);
			}
			$imagick->setImageFormat('JPEG');
			$imagick->setImageCompression(\Imagick::COMPRESSION_JPEG);
			$a = $imagick->getImageCompressionQuality() * 0.75;
			if ($a == 0) {
				$a = 75;
			}
			if(empty($filename)) $filename  = substr($image, 0, strrpos($image, '.')).$suffix.'.'.$type;
			$imagick->setImageCompressionQuality($a);
			$imagick->stripImage();
			$imagick->writeImage($filename);
			$imagick->clear();
			$imagick->destroy();
}

谢谢大家,教程结束

赞(5) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《CentOS 7 安装ImageMagick及PHP7扩展》
文章链接:https://www.ediok.cn/blog/2020/03/3696.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

评论前必须登录!

 

关注互联网发展前沿,关注PHPCMS技术演进,钻研PHPCMS技术开发

模块开发联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏