首页 网络技术
  1. 正文

CentOS7怎么安装ImageMagick和PHP7扩展

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();
}

本文标题:CentOS7怎么安装ImageMagick和PHP7扩展
本文链接:https://www.qqooo.cn/post/2179.html
版权说明:网站文章均来源于手工整理和网友投稿,若有不妥之处请来信 feelym@88.com 处理,谢谢!