ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

在Kubuntu 22.04上查看HEIF图像

2022-08-20 19:30:38  阅读:157  来源: 互联网

标签:Kubuntu jammy 22.04 tsinghua edu HEIF deb multiverse cn


介绍

HEIF是目前智能手机上常见的高效图片格式。KDE Framework 5.80.0正式支持了HEIF格式图像,但不知为何,开发者在编译相关的支持库时没有打开HEIF支持选项,导致目前最新的Kubuntu仍然无法打开HEIF图像。本文提供一种手动编译安装kimageformat-plugins库的方法,来使KDE下默认的图片查看器Gwenview支持HEIF图像。

步骤

下面的步骤需要使用Ubuntu的源代码仓库。如果你换过apt的软件源,它可能会默认禁用源代码仓库。笔者使用的清华大学开源镜像站的Ubuntu源就默认禁用了源代码仓库。为了启用源代码仓库,请编辑/etc/apt/sources.list文件(需要root权限)。

以清华源为例,编辑前的文件内容是:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

仅需取消第一个注释即可:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

取消注释后,保存退出,执行sudo apt update来更新软件源缓存。

在文件系统中随便找一个位置,新建一个脚本文件,随便取一个名字,比如temp.sh,编辑并输入以下内容:

mkdir temp_build_dir
cd !$
apt-get source kimageformats
cd kimageformats-*

sudo apt install libheif-dev
sudo apt build-dep kimageformats

echo -e '
override_dh_auto_configure:
	dh_auto_configure --buildsystem=kf5 -O--buildsystem=kf5 -- -DKIMAGEFORMATS_HEIF=ON
' >> debian/rules

sudo debuild -b -uc -us

sudo dpkg -i ../kimageformat-plugins_*_amd64.deb

注意以dh_auto_configure开头的行的行首应该是一个Tab符号(\t),不能是空格,否则会报错。如果你直接从这里复制,你使用的编辑器可能会默认地将\t转换为若干个空格(笔者使用的Kate确实这样做了)。

保存退出,执行

chmod +x temp.sh

来为你刚刚编辑的脚本添加可执行权限。

然后执行它:

./temp.sh

如果你使用的确实是Kubuntu 22.04,那么编译时可能会提示缺少两个库。安装它们需要手动添加一个软件源,在网络搜索它们可以找到安装的详细方法。

如果系统提示找不到debuild这个命令,可以在终端输入debuild,回车,bash将提示你这条命令来自哪个软件包,使用apt手动安装即可。

如果一切正常,上面的脚本文件的最后三行输出应该像下面这样:

...
准备解压 .../kimageformat-plugins_5.92.0-0ubuntu1_amd64.deb  ...
正在解压 kimageformat-plugins (5.92.0-0ubuntu1) 并覆盖 (5.92.0-0ubuntu1) ...
正在设置 kimageformat-plugins (5.92.0-0ubuntu1) ...

注意,Ubuntu的软件源中也有名为kimageformat-plugins的软件包,但它没有开启HEIF支持。我们通过源代码编译出了新的软件包并手动安装,从而支持HEIF格式。

如果一切正常,现在你可以在Gwenview中打开HEIF图片了。

善后

现在你可以手动删除刚才的脚本文件和脚本生成的文件夹了。有些文件需要使用root权限删除,因此你可能需要使用sudo rm -rf。请再三检查删除的对象,以防出现不测!

apt现在仍会提醒你升级kimageformat-plugins。为了避免我们手动编译的版本被覆盖,需要将其标记为永不升级。

sudo apt-mark hold kimageformat-plugins

如果你之后想要取消这个标记,使kimageformat-plugins被apt自动管理(从而升级),执行:

sudo apt-mark unhold kimageformat-plugins

标签:Kubuntu,jammy,22.04,tsinghua,edu,HEIF,deb,multiverse,cn
来源: https://www.cnblogs.com/eslzzyl/p/16608460.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有