Krita 5.2 更新日志

在之前的版本中,我们已经完成了对 Krita 资源系统的重写。现在我们终于可以着手解决那些在 Krita 中最为人诟病的痛点了。Krita 5.2 的主要工作是底层代码的升级和调整,这将为日后的实际改进打下基础。

动画

动画功能有两处痛点得到了解决:音频播放 (MR 1323) 和视频导出的简化 (MR 1599)。

在音频播放方面,为了能让 EmmetEoin 解决音频播放时的同步问题,我们使用 MLT 多媒体框架完全重写了 Krita 的音频播放程序机制。

在视频导出方面,新版 Krita 已经在软件包中自带了 FFmpeg 的精简版本。FFmpeg 是 Krita 在导出视频时需要使用的第三方程序,它是一款自由开源的视频处理程序工具集合。在旧版 Krita 中,用户必须自行下载并指定 FFmpeg 可执行程序的位置才能导出视频。Krita 自带 FFmpeg 后,不熟悉相关技术的普通用户可以免去配置的痛苦,尤其是在使用缺少管理权限的设备时——例如安卓设备、由机构 (如学校) 管理的电脑等。

文字

Wolthera 完全重写了 Krita 的文字排版引擎。这是因为旧的文字排版引擎对文字的控制能力有所欠缺,导致我们在改进文字工具、扩展文字功能时难以施展。

Depiction of some of the new text features, with text tests like the Krita slogan: "Krita - digital painting, creative freedom", and test texts like "I love SVG" and "The quick brown fox..."

新版文字排版引擎功能演示 (包括但不限于):文字按形状排列、文字按路径排列、彩色字体支持等

新版文字排版引擎支持所有旧版引擎的功能,并且增加了文字按路径排列 (路径文字)、竖排文字、自动换行、文字按形状排列等新功能。它还支持 OpenType 功能、渲染表情符号 (点阵、colrV0 表情符号类型) (MR 1607MR 1767)。

不过先别急,Krita 5.2 还没有准备好新版的文字工具——您暂时只能通过文字工具的 SVG 代码页面调用新版文字排版引擎的功能。我们将在 Krita 5.3 重点改进文字工具,让它实现在画布上进行所见即所得的文字编辑、提供用于操作新功能的菜单、预设等。

工具

Dmitry Kazakov 对 Krita 的合并撤销功能进行了大幅更新 (MR 1780)。合并撤销功能可以将撤销历史中的多个操作合并为一个操作,这在笔画细碎的场合可以让撤销更加有用。我们在 Krita 5.2 中精简了此功能的代码,并且让选项更加直观。

Przemysław Gołąb 为草图笔刷引擎增加了绘制结果抗锯齿的功能 (MR 1425)。

Freya Lupen 为变形工具增加了同时变形多个图层的功能 (MR 1792)。

填充工具

Deif Lou 为填充工具增加了一个新的模式:“填充颜色相似的区域” (MR 1577)。除此之外,填充工具、闭合填充工具 (圈涂) 还增加了两个选项:“遇到最暗或者最不透明像素时停止扩大选区”、“填充所有区域,直至遇到指定的边界颜色” (MR 1549, 1560);两个填充工具新增了“使用自定义混合选项”的选项,勾选后即可使用与手绘笔刷模式不同的混合模式 (MR 1749)。

Four images next to one another, the first only shows a dot, the rest show how starting a fill at that dot will have different fill results with different options.

上面的示例来自 Krita 使用手册:在图 A 的红点处填充,图 B 是一般填充的结果,图 C 是提高了“边缘扩展”数值的结果,图 D 是使用了“填充所有区域,直至遇到指定的边界颜色”模式的结果。

选区工具

相连颜色选区工具/魔棒增加了与上述填充工具相同的选区范围扩展功能 (MR 1549)。在“配置 Krita”对话框的“显示”页面的“画布辅助显示”选项卡中增加了设置选区蒙版透明度的选项 (MR 1697)。选区蒙版的视觉要素现在可以根据屏幕 DPI 自动调整 (MR 1774)。

快捷键

新增了以下操作的快捷键位:

Showing select-layers-menu in action: An on-canvas menu with the layers of the image shown, stating 'rain_shining, rain_simple, clouds and select all layers'.

上图演示了“打开图层菜单选择图层”操作的效果,它会显示位于光标下方的图层的菜单。

  • 切换橡皮擦预设:由 Freya Lupen 编写 (MR 1689),用于切换到原本分配给压感笔末端“橡皮擦”的预设。这是因为有些压感笔的末端并没有橡皮擦,所以有些用户希望能通过快捷键来激活橡皮擦预设。
  • 拾取屏幕颜色:由 killy |0veufOrever 编写 (MR 1720),用于拾取屏幕上任意位置,包括在 Krita 窗口之外的颜色,和“选择颜色”对话框中的拾色器按钮功能相似。
  • 打开图层菜单选择图层  (画布快捷键):由 killy |0veufOrever 编写 (MR 1766),在画布上显示光标下方内容图层的菜单,从中选择所需图层。
  • Krita 现在提供了与 Clip Studio Paint 兼容的快捷键方案,由 Freya Lupen 编写 (MR 1565)。
  • Krita 现在能够检测画布输入快捷键的冲突,由 Sharaf Zaman 编写 (MR 1725)。

面板

Mathias Wein 为 Krita 编写了一个宽色域拾色器。这个拾色器的功能与原有的多功能拾色器相似,但区别在于它除了 sRGB 色域外还支持宽色域。我们计划在未来用它取代原有的拾色器,在此之前我们将测试并确保它不会缺少任何已有的功能 (MR 1600)。

Wide gamut color selector is shown here as a gradient-square with a rainbow colored circle around it.

全新的宽色域拾色器提供了更多拾色器形状,支持选择在 sRGB 之外的宽色域的颜色。

图层面板增加了一些显示选项:

  • 因为在安卓设备上选择多个图层很不方便,Sharaf 在图层项的一侧增加了图层选择框 (MR 1665)。
  • Freya Lupen 增加了在图层项上额外显示图层不透明度、混合模式的功能 (MR 1501MR 1520MR 1615),将自动图层后缀变成了可选项 MR 1498,并为文件图层增加了更改缩放插值方式的选项 (MR 1784)。
  • Măcelaru Tiberiu 确保了笔刷预设面板在水平拉伸模式下依然美观:MR 1670
  • 笔刷预设历史显示数量现在是可配置项 (MR 1623)。
  • 色板面板增加撤销、重做以及更多功能 (MR 1617)。

文件格式

我们更改了 CMYK 混合模式的工作方式,并在设置对话框提供了一个选项以供切换 (MR 1796)。这样 Krita 将使用与 Photoshop 相同的方式处理 CMYK 色彩空间下面的混合模式,简化了跨程序处理 CMYK 色彩空间的 PSD 文件时的操作。

Rasyuqa A. H. 改进了 JPEG-XL 格式的保存和加载代码,实现了 JPEG-XL 的 CMYK 支持,通过为 JXL 程序库提供更多的色彩空间信息以提高压缩率,为保存和加载 JPEG-XL 的光栅图层改进了元数据处理功能 (MR 1656, 16931673, 1722, 1795)。他还改进了 WebP 压缩选项 (MR 1785),并改进了 ICC 转换特性的代码 (MR 1667, 1690)。

A side-by-side comparison of the internal XYB profile and the original image profile. The example consists of a closeup of a cartoon eye that shows visible ringing with the original profile.

用 JPEG-XL 的 XYB 色彩空间替代原始色彩空间后,JPEG-XL 编码器在处理极端高亮度颜色区域 (例如比正常白更亮 40 倍) 时可以大幅提升压缩画质和压缩率。在上图的例子中消除了高光色周围的环状杂色。

  • Cedric Ressler 改进了 EXR 格式的多图层处理 (MR 1677)。
  • Amyspark 改进了 RAW 格式的导入界面 (MR 1679),并通过分块并行处理提高了速度 (MR 1694)。

其他

这版 Krita 的其中一个重大技术性升级是使用 Lager 程序库重写了笔刷引擎的代码。在旧版代码中,笔刷预设和控件的代码已经变得相互纠缠不清,使得我们在增加选项时非常不便。我们希望通过这次重写为日后重新设计笔刷设置空间打下基础 (MR 1334)。

  • Freya Lupen 为最近图像列表增加了移除单个项目的功能 (MR 1666)。
  • Joshua Goins 让数位板测试程序现在能够访问笔身倾斜数据 (MR 1678)。
  • Sharaf Zaman 为安卓版本实现了更加方便的资源位置选择方式 (MR 1771)。
  • Stephen Wilson 确保了 Krita 在使用模板时重置图像的元数据 (MR 1769)。
  • Agata Cacko 投入了大量时间和精力来确保 Krita 在对屏幕指定色彩特性文件时能够获取更准确的显示器名称 (MR 1768)。
  • Amyspark 为 Krita 的界面细节进行了大量的清理和打磨 (MR 1683MR 1696MR 1702MR 1701MR 1732MR 1744MR 1742MR 1772)。