0

我有一个 python-fu 问题。我正在使用 GIMP 2.10.12,mac 版本。
假设我在 GIMP 中打开了一张图片

原始示例图像:

图片

我想使用 python-fu 以 webp 格式保存它。我这样做:

img=gimp.image_list()[0]
layer=img.layers[0]
pdb.gimp_file_save(img,layer,'/my_path/my_image.webp','?')

它可以工作,但是当我检查生成的 webp 文件时发现它的质量已经下降。它正在通过有损压缩保存。

产生的有损图像:

图片

如果我使用 GUI 执行相同的过程,在对话框中有无损压缩复选框,我检查了它,并且生成的文件具有我想要的质量。

勾选了无损选项的 Gimp 对话框:

图片

我的问题是:如何将图像保存为 webp 文件并仅使用 Python-fu 而不是 GUI 检查无损压缩选项?

我尝试过:
- 首先将图像展平以带走 alpha 通道,但没有奏效。
-查看 GIMP 的开发人员文档,但尚未找到任何内容。
- 在首选项面板中查找默认选中无损选项的方法。还没有找到任何东西。

我错过了什么吗?欢迎任何指点。谢谢。

4

1 回答 1

0

当您使用gimp-file-saveGimp 保存图像时,通过查看您在名称中提供的扩展名来确定图像类型,并使用为此类型设置的默认设置保存它。对于某些图像类型(JPEG 和 PNG),一种解决方案是更改 Gimp 的默认选项,但无法为 WebP 更改它们。

然而,一般的解决方案是有特定类型的导出/保存函数(通常称为file-${type}-save),这些函数具有导出对话框中显示的所有选项。对于 WebP,您将使用file-webp-save(*):

在此处输入图像描述

如您所见,其中有一个lossless选项。

我从来没有使用过这个警告词:通常这些调用只保存一个“可绘制”,即在大多数情况下,是一个单层。如果您有一个多层图像并且想要保存整个图像,则必须将其展平(或保存展平的副本)或创建一个临时图层以使用gimp_layer_new_from_visible) 保存。

(*) 如果你还没有找到它,Filters > Python-fu > Console给你一个控制台来尝试,在那个窗口中,一个Browse按钮将你发送到记录所有内容的过程浏览器(这个文档是动态生成的,并考虑了你所有的插件可能已经添加)。

于 2021-08-29T07:33:00.513 回答