Site Loader

HEIC是目前苹果iPhone手机拍摄照片时的默认图像存储格式。与JPG相比,HEIC占用的空间更小,画质更无损。
当用户上传HEIC文件到Nextcloud时,在web页面中并不能产生HEIC的缩略图,给用户查看带来不便。

测试设备系统信息:

  • 操作系统:Ubuntu 18.04 LTS 64Bit
  • NextCloud:NextCloud Server 16.0.0
  • 数据库:MariaDB
  • PHP版本:7.2
  • WebServer:Apache2

这个问题是由以下几个原因导致的:

  • ubuntu 18用apt命令安装的ImageMagick默认为6.x版本,并不支持HEIC
  • ubuntu 18默认安装的php-imagick也只与 ImageMagick 6.x匹配
  • ubuntu 18默认安装的libheic-dev库文件版本比较旧

解决步骤如下:

  1. 删除旧版ImageMagick、php-imagick、libheic-dev
  2. 通过PPA添加libheic最新源
  3. apt安装libheic-dev
  4. 下载ImageMagick 7和php-imagick3.4.4的软件包
  5. 通过make编译安装以上软件包
  6. 修改php.ini文件,加载 php-imagick
  7. 重启apache2

1. 删除旧版ImageMagick、php-imagick、libheic-dev

ssh连接服务器,使用root用户运行如下命令。请注意某些命令行最后的“*”号,也必需加上,否则无法删除干净。

apt remove imagemagick*
apt autoremove
apt remove php-imagick
apt remove libheif*
apt autoremove

2. 通过PPA添加libheic最新源,并更新数据源

add-apt-repository ppa:strukturag/libheif
apt update

3. apt安装libheic-dev,版本应为1.4.x

apt install libheif-dev

4. 下载ImageMagick 7和php-imagick3.4.4的软件包,并解压,解压后出现ImageMagick-7.0.8-44及imagick-3.4.4两个文件夹

cd /var/tmp
wget https://www.imagemagick.org/download/ImageMagick.tar.gz
wget https://pecl.php.net/get/imagick-3.4.4.tgz
tar zxvf ImageMagick.tar.gz
tar zxvf imagick-3.4.4.tgz

5. 通过make编译安装以上软件包

apt-get install build-essential autoconf git-core
apt-get build-dep imagemagick libde265 libheif
--------------------------------------
cd /var/tmp/ImageMagick-7.0.8-44
./configure --with-heic=yes
make -j 4
make install
ldconfig
--------------------------------------
cd /var/tmp/imagick-3.4.4
phpize    \\(如提示“Command 'phpize' not found, but can be installed with:”,请先安装php7.2-dev,再运行phpize)
./configure --with-imagick=/opt/local
make
make install 

6. 修改php.ini文件,加载 php-imagick

nano /etc/php/7.2/apache2/php.ini

去到文件末尾,添加配置项extension=imagick.so

7. 重启apache2

service apache2 restart

敲入命令mogrify –version查看ImageMagick信息,ImageMagick中已包含heic。

再次刷新页面,heic缩略图呈现眼前,问题解决。

相关文章:《解决Nextcloud无法在线打开HEIC图片的问题》

Post Author: 记忆深潜

发表评论

电子邮件地址不会被公开。 必填项已用*标注