由于ImageMagick7以下不支持heic等图片格式,所以重新安装了ImageMagick7.1版本支持heic格式,并写此文章记录一下。

如果安装过程中遇到一些未知的错误,https://imagemagick.org/script/download.php 可以去官网看文档解决,或者评论一起解决。

在Linux(centos7)上安装ImageMagick7.1库以及php的Imagick扩展

1.在Linux上安装ImageMagick7.1

安装之前需要配置一下pkg-config,以便 ImageMagick 可以在您的系统上找到某些可选的委托库

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib64/pkgconfig:/usr/local/lib/pkgconfig

export PKG_CONFIG_PATH

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64

export LD_LIBRARY_PATH

安装依赖库(这里我只安装heic(heif) 的依赖,其他格式类似一样安装)

安装x265(libheif依赖)

wget https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.gz

tar -zxvf nasm-2.13.03.tar.gz

cd nasm-2.13.03

./autogen.sh && ./configure && make && make install

安装libheif依赖

wget https://github.com/strukturag/libheif/releases/download/v1.12.0/libheif-1.12.0.tar.gz

tar -zxvf libheif-1.12.0.tar.gz

cd libheif-1.12.0

./autogen.sh && ./configure && make && make install

最后安装ImageMagick

wget https://imagemagick.org/archive/ImageMagick-7.1.0-39.tar.gz

tar -zxvf ImageMagick-7.1.0-39.tar.gz

cd ImageMagick-7.1.0-39

./configure && make && make install

设置环境变量

echo "export PATH=$PATH:/usr/local/ImageMagick/bin" >> /etc/profile

//如果需要移除旧版本

yum remove ImageMagick -y

//加载环境变量

source /etc/profile

//验证版本安装是否成功

convert -version

//查看支持格式列表

convert -list format

在编译的过程中如果出现报错

error: 'libraw_output_params_t' has no member named 'no_interpolation'

则需要升级一下你的 libraw 版本

//先卸载当前libraw

yum remove libraw

//安装更高版本的libraw

(rpm安装命令)

rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/Packages/LibRaw-0.19.4-1.el7.x86_64.rpm

(yum安装命令)

yum localinstall -y https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/Packages/LibRaw-0.19.4-1.el7.x86_64.rpm

安装完重新编辑即可

2.安装PHP的Imagick扩展

//下载、解压、安装imagick-3.4.4

wget https://pecl.php.net/get/imagick-3.4.4.tgz

tar -zxvf imagick-3.4.4.tgz

cd imagick-3.4.4.tgz/

/usr/local/php/bin/phpize

//ImageMagick 6.8以上版本目录为/usr/local/include/ImageMagick-X,在configure之前先做下软连接

ln -s /usr/local/imagemagick/include/ImageMagick-7 /usr/local/imagemagick/include/ImageMagick

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

make && make install

最后在php.ini中加入imagick.so扩展即可

extensions=imagick.so

通过升级ImageMagick7支持heic格式处理,由于我们服务器是aws的,在安装的过程中可谓一波三折。不过好在最终也是成功安装完成。希望记录下来过程,给有需要的朋友们一点帮助。

博客地址:https://www.goldenleek.top

欢迎骚扰~

安装ImageMagick7.1库以及php的Imagick扩展的更多相关文章

  1. 转 ImageMagick及PHP的imagick扩展的安装及配置

    imagick是一个PHP的扩展,用ImageMagick提供的API来进行图片的创建与修改,不过这些操作已经包装到扩展imagick中去了,最终调用的是ImageMagick提供的API Image ...

  2. 通过php安装Imagick扩展给动态gif图片打水印

    通过php安装Imagick扩展给动态gif图片打水印 一直以来php处理图片都是以gd为主流,直到近些年Imagick的使用才渐渐变多. gd通常用来缩放图片,给图片打水印等基本功能,对于复杂效果如 ...

  3. linux下 安装 ImageMagick 及其 php imagick扩展(转)

    linux下 安装 ImageMagick 及其 php imagick扩展 PHP版本7.1.3 : ImageMagick版本 ImageMagick-7.0.8-3: PHP扩展imagick版 ...

  4. 安装Python算法库

    安装Python算法库 主要包括用NumPy和SciPy来处理数据,用Matplotlib来实现数据可视化.为了适应处理大规模数据的需求,python在此基础上开发了Scikit-Learn机器学习算 ...

  5. kali4.0 安装32位库

    一.前情提要: OS:Kali4.0 64bit 二.安装32位库: 错误方法:sudo apt-get install lib6-i386 正确方法如下: 1.先以root用户身份登陆: su ro ...

  6. ubuntu 下安装32位库 ia32-libs方法

    这两天在整Linux系统,要配置JDK,SDK环境,但是SDK配置使用的时候,提示没有权限. 需要安装32位库来解决,还有就是在修改文件的时候提示不能修改.唉...反正就是没有办法正常操作啦 后来根据 ...

  7. phpstudy 出现“请自行检查是否安装VC9运行库??”问题 -- 缺少vc9库

    phpStudy是一款PHP调试环境的程序集成包,该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便.好用的 ...

  8. [django]在virtualenv下安装的第三方库的使用方法

    在virtualenv下安装的第三方库,例如south, requests等,如果想在django中使用,需要先将库添加到settings.py的INSTALLED_APPS中, 以south, re ...

  9. 解决安装vc2005运行库时提示Command line option syntax error.Type Command/?for Help

    安装vc2005运行库时提示 这是因为它要自解压到用户的临时文件夹下,如果用户名中带中文,就会报错. 简单的解决方法是,手动解压之,再安装 当然,你也可以修改用户名或者再新建个用户.

随机推荐

  1. js中的undefined

    undefined,一个特殊值,通常用于指示变量尚未赋值,是一个JavaScript的 原始数据类型 . 如果后台返回前台数据为空(无数据),那么用该对象获取其中的属性会显示undefined. 如果 ...

  2. 图数据库|基于 Nebula Graph 的 BetweennessCentrality 算法

    本文首发于 Nebula Graph Community 公众号 ​在图论中,介数(Betweenness)反应节点在整个网络中的作用和影响力.而本文主要介绍如何基于 Nebula Graph 图数据 ...

  3. JavaScript基础第04天笔记

    JavaScript基础第04天笔记 1 - 数组 1.1 数组的概念 数组可以把一组相关的数据一起存放,并提供方便的访问(获取)方式. 数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以 ...

  4. Transactional事务,事务嵌套的时候,如果主事务出现问题,子事务执行不需要回滚怎么做?

    如果调用的方法在不在同一个service当中,则只需要在子事务当中的方法上方添加注解即可 下方即是:这就话代表:重新开启一个新的事务 @Transactional(propagation = Prop ...

  5. 2021.12.06 P1450 [HAOI2008]硬币购物(组合数学+抽屉原理+DP)

    2021.12.06 P1450 [HAOI2008]硬币购物(组合数学+抽屉原理+DP) https://www.luogu.com.cn/problem/P1450 题意: 共有 44 种硬币.面 ...

  6. Visual Studio 修改NuGet 包缓存路径

    Visual Studio 下载的NuGet包默认会缓存到 C:\Users{Windows用户名}.nuget\packages 下,时间一长就会导致 C盘空间严重不足. 那么怎样去设置,让包缓存文 ...

  7. py文件加密打包成exe文件

    python的py.pyc.pyo.pyd文件区别 py是源文件: pyc是源文件编译后的文件: pyo是源文件优化编译后的文件: pyd是其他语言写的python库: 为什么选用Cpython .p ...

  8. 深度解析javaScript常见数据类型检查校验

    前言 在JavaScript中,数据类型分为两大类,一种是基础数据类型,另一种则是复杂数据类型,又叫引用数据类型 基础数据类型:数字Number 字符串String 布尔Boolean Null Un ...

  9. Java学习笔记-基础语法Ⅹ-进程线程

    学习快一个月了,现在学到了黑马Java教程的300集 打印流的特点: 只负责输出数据,不负责读取数据 有自己的特有方法 字节打印流:PrintStream,使用指定的文件名创建新的打印流 import ...

  10. Java 15 新特性:隐藏类

    什么是隐藏类 隐藏类,是一种不能被其他类直接使用的类.引入隐藏类的主要目的是给框架来使用,使得框架可以在运行时生成类,并通过反射间接使用它们.可能有点抽象,不要紧,下面我们通过一个例子来直观的认识它! ...