centos gd扩展 php7_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扩展的用法

用法未必通用,但类似

PHP

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

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

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

}

谢谢大家,教程结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值