Krita 文档图像制作指南¶
请先阅读 为互联网保存图像 教程,它能帮助你理解本页内容。本页在前者的基础上对 Krita 文档图像的额外要求和制作、优化方式进行进一步介绍。
截图工具¶
Krita 是一个操作复杂的专业图像软件。Krita 文档在介绍它的功能时经常要将软件界面中的工具和面板等保存成图像,以便读者参考。
Krita 本身只能保存画布中的内容。要想保存它的软件界面,我们需要使用截图软件。不同的操作系统下面会用到不同的截图软件。
Windows¶
Windows 系统已经自带了截图工具,在默认状况下按 Print Screen 键即可调用。在笔记本上面可能要配合 Fn 键使用。你还可以在开始菜单或者搜索栏中搜索“截图”,它将列出功能完整的截图工具。
Linux¶
Gnome、KDE 和大多数流行的桌面环境也都自带了截图工具,按 Print Screen 键即可调用。Gnome 的截图软件叫“Screenshot”,KDE 的截图软件叫“Spectacle”,它们都可以被单独启动,提供更完整的截图功能。
- ImageMagick
如果你的系统没有预装截图工具,请在命令行下面使用 imagemagick 进行截图,指令如下:
import -depth 8 -dither <filename.png>
根据无障碍原则,我们应当避免在 Krita 文档中使用 GIF 动图。话虽如此,有些繁琐的操作是很难不靠录像就能解释清楚的。我们可以使用录屏软件对操作过程进行录像,然后将录像保存为 GIF 动图。
要制作 GIF 动图,可以使用下列程序:
Peek – 它的界面友好,还提供了 Appimage 软件包。不过和许多录屏软件一样,它在 Wayland 下面也有点水土不服。
macOS¶
macOS 的截图快捷键为 Shift + Command + 3 ,详情请参阅苹果官方文档。
图像格式¶
Krita 的文档要提供给成千上万的用户在线阅读,为了减轻服务器压力,提高加载速度,我们应该尽可能地在保持画质的前提下减小图像文件的体积。要做到这一点,图像格式的选择尤为重要。我们建议根据图像的特点选择效果最好,同时也最为经济的图像格式:
- 软件界面截图
使用 PNG 。如果画质劣化不明显,甚至可以使用 GIF。
- 渐变色较少的图像
使用 PNG 。
- 灰阶图像
使用 GIF 或者 PNG 。
- 渐变色较多的图像
使用 JPG 。
- 需要保留透明度的图像
使用 PNG 。
上述选择是由每种图像格式保存颜色的方式所决定的。JPEG 使用的 压缩方式 适合照片和渐变色较多的图像,但在保存边缘清晰、反差明显的图像时效果不好 。PNG 在保存任何图像时都不会损失画质,但文件体积较大。GIF 不能保存超过 256 种颜色,但在保存渐变色较少的图像时可以有效减小文件体积。
灰阶图像,即使带有大量渐变色,也应该使用 PNG。虽然 PNG 在保存彩色图像时体积很大,但保存灰阶图像时却不会这样。这是因为彩色 PNG 图像的每个像素有 3 到 5 条色彩通道 (如 RGBA),每条通道又有 256 种可能数值 (8 位),因此图像的数据量很大。灰阶图像的每个像素只有一条通道 (明度),所以在使用 GIF 或者 PNG 时文件体积要比彩图小很多。JPEG 等有损格式的算法会产生原始图像中没有的杂色,这在灰阶下面尤为明显,而且在灰阶下面文件体积也没有优势,因此不建议使用 JPG 保存灰阶图像。
要是拿不定主意,请使用 PNG。
优化图像¶
所谓的优化,就是在尽可能保持画质的前提下进一步减小图像体积。我们可以使用一些第三方工具来做到这一点。
Windows¶
在 Windows 下面人们经常推荐 IrfranView ,但本文档的作者并没有时间去鼓捣它的具体操作。
另一个选项则是 PNGCrush,它有 Windows 版,请按照 Linux 一节相关介绍使用。
Linux¶
PNG 图像的优化¶
Linux 下面有多种 PNG 优化工具 可供选用。它们分为两类:有损 (使用基于心理学的算法丢弃不易察觉的图像数据) 和无损 (用可逆的数学算法进行压缩)。推荐使用下列工具:
- PNGQuant
这个工具可以巧妙地利用有损算法来降低图像包含的颜色数量,达到减小体积的目的。
要使用 PNGquant,前往目标文件夹,然后输入:
pngquant --quality=80-100 image.png
用实际文件名替换上述命令的 image 字段。按下 回车键 ,优化后的图像会被保存到同一个文件夹。PNGQuant 适用于大多数图像,但不适合处理色彩特别丰富的图像,例如多功能拾色器的截图等。请务必检查优化后的图像效果是否理想,如果效果不佳,请尝试其他工具:
- PNGCrush
这是一个无损的 PNG 压缩工具。用法如下:
pngcrush image.png imageout.png
上述指令仅通过常见手段进行压缩。添加
-brute
参数后,软件会使用一切可用手段进行压缩。- Optipng
这也是一个无损的 PNG 压缩工具,它原本是 PNGCrush 的派生项目。可以在使用 PNGQuant 优化图像后用它进一步压缩体积。用法如下:
optipng image.png
请将上述指令中的 image 字段换成你的图像文件名。OptiPNG 会尝试多种压缩算法,然后用优化后的图像 覆盖 原图。想要避免覆盖原图,请使用
--out imageout.png
参数。
GIF 图像的优化¶
JPEG 图像的优化¶
JPEG 不适合被进一步优化。它是一种 有损压缩格式 ,使用基于视觉心理学的算法选择性地丢弃一部分图像数据。如果将一张原本就是 JPEG 格式的图像再用 JPEG 格式保存一次,它的画质将越来越差。此外,JPEG 的算法在处理反差明显的颜色边缘时表现不佳,例如文字和纯色等。
因此,请务必在编辑过程中将图像保存为无损图像格式 (如 KRA 或者 PNG)。只有在输出最终图像时才用 JPEG 格式进行导出,这样可以最大程度地减少画质的损失。
macOS¶
ImageOptim – 这是一个配合 PNGquant 和 gifski 等工具使用的图形界面程序。
元数据处理¶
我们有时会不小心将个人信息嵌入到图像的元数据中,因此需要在事后移除它们。我们有时需要将某些特定的信息嵌入到图像的元数据,以便管理记录。
每种图像格式都有独特的元数据结构。用于处理元数据的工具也有好几种。
最常用的元数据编辑工具是 ExifTool ,除此之外还可以使用 ImageMagick 。
Windows 和 macOS¶
如需下载 exiftool,请访问 该项目的官方网站 。
Linux¶
在 Linux 下面你还可以直接安装 exiftool。
- Debian/Ubuntu
sudo apt-get install libimage-exiftool-perl
查看元数据¶
打开命令行终端,前往图像文件所在的目录,输入:
exiftool image
把 image 字段换成目标文件名。如果只输入 exiftool
指令,它会把当前目录下面所有文件的元数据全部输出。仔细查看图像的元数据,如果有文件嵌入了作者和位置信息,这将造成这些信息的泄露。因此我们有时需要清除图像的全部元数据。
你还可以使用 ImageMagick 的 identify 参数 来查看图像的元数据:
identify -verbose image
清除元数据¶
以文件名 image.png
为例,你可以使用下列方式清除它的元数据:
- ExifTool
exiftool -all= image.png
这将清除 exiftool 发现的所有标签。你还可以指定移除某个标签,以 author (作者) 标签为例:exiftool -author= image.png
- OptiPNG
optipng -strip image.png 指令可以清除该 PNG 图像的元数据,并对其进行压缩。
- ImageMagick
convert image.png –strip
提取元数据¶
有些时候,我们可能想要先提取某些有用的元数据——例如图像内嵌的 ICC 色彩特性文件,然后再清除全部元数据。我们可以通过 ImageMagick 的 convert 指令提取 ICC 特性文件:
- ImageMagick 的 Convert 指令
首先,把图像内嵌的 ICC 元数据提取为 ICC 色彩特性文件:
convert image.png image_profile.icc
清除图像的所有元数据,然后再用下面的指令将 ICC 特性文件重新嵌入图像:
convert -profile image_profile.icc image.png
嵌入图像描述元数据¶
图像描述元数据可以被朗读屏幕软件读取,辅助视觉障碍用户的访问。如果网页图像标签不含 alt 字串,许多浏览器会读取图像的描述元数据并自动生成 alt 字串。
ExifTool
- ImageMagick
嵌入 exif 图像描述元数据:
convert -set exif:ImageDescription "图像描述文字" image.png image_modified.png
嵌入图像描述到 PNG 数据区块:
convert -set Description "图像描述文字" image.png image_modified.png
嵌入许可证元数据¶
你可以在图像文件中嵌入许可证元数据,这样有利于许可证信息的保留和传递。不过许多网站会在上传图像的同时使用 imagemagick 清除这些元数据,所以这种嵌入不是永久性的。
嵌入许可证信息到文档属性标签¶
你可以使用 dcterms:license 参数把许可证信息插入到对应的文档属性元数据中。
- ImageMagick
嵌入 GFDL 许可证:
convert -set dcterms:license "GDPL 1.3+ https://www.gnu.org/licenses/fdl-1.3.txt" image.png
这将定义一项文档属性标签,并填入许可证文本。
嵌入 Creative Commons BY-SA 4.0 许可证:
convert -set dcterms:license "CC-BY-SA-4.0 https://creativecommons.org/licenses/by-sa/4.0/" image.png
这种做法的问题是它并不符合相关规范,因此计算机无法自动读取并处理这种方式定义的许可证标签。
嵌入许可证信息到 XMP 标签¶
Creative Commons 网站建议我们 使用 XMP 标签来定义许可证信息 。在 Creative Commons 网站上选取许可证时,可以要求它生成一组对应的 XMP 文件。
如果使用 ExifTool 嵌入,我们必须使用 兼容 ExifTool 的 XMP 标签 。
命令范例如下:
exiftool -Marked=true -License="https://creativecommons.org/licenses/by-sa/4.0" -UsageTerms="This work is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>." -Copyright="CC-BY-SA-NC 4.0" image.png
或者也可以这样做:
exiftool -Marked=true -License="https://creativecommons.org/licenses/by-sa/4.0" -attributionURL="docs.krita.org" attributionName="kritaManual" image.png
- 通过 Imagemagick 的 profile 参数嵌入
首先提取元数据 (如有需要):
convert image.png image_meta.xmp
对生成的 XMP 文件进行修改,然后把元数据重新嵌入图像:
convert -profile image_meta.xmp image.png
每个 XMP 标签可以定义一个许可证。你可以在 Creative Commons 网站上生成图像所需的许可证 XMP 文件。