Centos5.8 安装 ImageMagick 6.8.9-3

下载最新的 ImageMagick-6.8.9-3.x86_64.rpm 直接prm -ivh 安装提示错误

	error: Failed dependencies:
	libHalf.so.4()(64bit) is needed by ImageMagick-6.8.0-4.x86_64
	libIex.so.4()(64bit) is needed by ImageMagick-6.8.0-4.x86_64
	libIlmImf.so.4()(64bit) is needed by ImageMagick-6.8.0-4.x86_64
	libImath.so.4()(64bit) is needed by ImageMagick-6.8.0-4.x86_64
	libltdl.so.3()(64bit) is needed by ImageMagick-6.8.0-4.x86_64
	libfftw3.so.3()(64bit) is needed by ImageMagick-6.8.9-3.x86_64
	libfpx.so.1()(64bit) is needed by ImageMagick-6.8.9-3.x86_64
	libgs.so.8()(64bit) is needed by ImageMagick-6.8.9-3.x86_64
	liblzma.so.0()(64bit) is needed by ImageMagick-6.8.9-3.x86_64
	libwebp.so.4()(64bit) is needed by ImageMagick-6.8.9-3.x86_64
	libwmflite-0.2.so.7()(64bit) is needed by ImageMagick-6.8.9-3.x86_64

需要安装 OpenEXR-devel sudo yum install OpenEXR-devel 提示无此安装包,

查看现有的 yum repositories, 命令: yum repolist 没有rpmforge, 需要安装额外的rpm repository: http://repoforge.org 根据提示页 http://repoforge.org/use/, 下载针对Centos5的repository: x86_64 http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm 安装命令 rpm -i rpmforge-release-0.5.3-1.el5.rf.*.rpm 再执行 sudo yum install OpenEXR-devel 就可以了 然后 sudo yum install fftw3-devel (libfftw3) sudo yum install xz-libs (liblzma) 按ImageMagick 网站上的安装提示, 可以先安装 ImageMagick-devel, 将必备的包一次安装齐全, 然后再编译安装替换掉旧的 sudo yum install ImageMagick-devel 还是不行, 安装十全大补包!

sudo yum install bzip2-devel freetype-devel libjpeg-devel libpng-devel libtiff-devel giflib-devel zlib-devel ghostscript-devel djvulibre-devel libwmf-devel jasper-devel libtool-ltdl-devel libX11-devel libXext-devel libXt-devel lcms-devel libxml2-devel librsvg2-devel OpenEXR-devel

还是不行 最后, 以上的都是扯淡, 还是有两个so找不到, 最后发现, 最简单的方法原来是... 从源码编译...

tar -zxvf ImageMagick-6.8.9-3.tar.gz 
cd ImageMagick-6.8.9-3
./configure --prefix=/opt/ImageMagick-6.8.9-3
sudo make
sudo make install

安装完后, 在/opt/ 下建一个软链

sudo ln -s ImageMagick-6.8.9-3/ ImageMagick

还得把yum安装了的旧版本删掉

sudo yum remove ImageMagick ImageMagick-devel

安装PHP的 Imagick扩展

sudo /opt/php/bin/pecl install imagick

中间会提示输入ImageMagick的安装路径, 使用 /opt/ImageMagick 然后修改 php.ini, 把新的扩展加上 重启httpd发现没有启用, 用ls -Z一看还是selinux的问题, 用命令重置

sudo /sbin/restorecon imagick.so 然后重启就可以了

Updated 2018-03-16

命令行说明

#举例
convert +profile '*' [src]{file}.{ext} -quality 80 -resize '280x140^>' -gravity Center -crop 280x140+0+0 +repage [out]{file}_280x140.{ext}
# 把一张图片按80的质量去压缩(jpg的压缩参数),同时按图片比例非强制缩放成不超过280x140的图片.居中裁剪280x140,去掉图片裁减后的空白和图片exif信息,通常这种指令是为了保证图片大小正好为280x140

参数说明
-quality   图片质量,jpg默认99,png默认75
-resize
  100x100      高度和宽度比例保留最高值,高比不变
  100x100^     高度和宽度比例保留最低值,宽高比不变
  100x100!      宽度和高度强制转换,忽视宽高比
  100x100>     更改长宽,当图片长或宽超过规定的尺寸
  100x100<     更改长宽 只有当图片长宽都超过规定的尺寸
  100x100^>   更改长宽,当图片长或宽超过规定的尺寸。高度和宽度比例保留最低值
  100x100^<   更改长宽,只有当图片长宽都超过规定的尺寸。高度和宽度比例保留最低值
  100             按指定的宽度缩放,保持宽高比例
  x100          按指定高度缩放,保持宽高比

-gravity NorthWest, North, NorthEast, West, Center, East,  SouthWest, South, SouthEast截取用的定位指令,定位截取区域在图片中的方位
-crop 200x200+0+0 截取用的截取指令 ,在用定位指令后,按后两位的偏移值偏移截取范围左上角的像素后,再按前两位的数值,从左上角开始截取相应大小的图片
+repage 去掉图片裁减后的空白
-dissolve 30 设定组合图片透明度dissolve示例
+/-profile * 去掉/添加图片exif信息

常用命令

convert +profile '*' [src]{file}.{ext} -quality 90 -resize '700>' /data/tony/watermark_1.png -gravity southeast -compose Dissolve -composite [out]{file}_1024x1024.{ext}

convert +profile '*' [src]{file}.{ext} /data/watermark_1.png -gravity southeast -geometry +10+10 -composite [src]{file}.{ext}

convert +profile '*' [src]{file}.{ext} -coalesce -resize '950x135>' [out]{file}_950x135.{ext}

convert +profile '*' [src]{file}.{ext} -resize '650x500>' miff:- | composite +profile '*' -dissolve 30 -gravity southeast /data/tony/watermark_1.png - [out]{file}_650x500.{ext}

convert [src]{file}.{ext} -quality 80 -resize '190>' -background white -gravity center -extent 190x +repage [out]{file}_width190.{ext}

# 将图片转化成长和宽不超过1024的图片
convert +profile "*" -quality 75 -resize 1024x1024 kit_new_pcb_back.jpg kit_new_pcb_back_s.jpg

.

原文地址:https://www.cnblogs.com/milton/p/4215127.html