0

愚蠢的提问时间。如何使用 Script-Fu 在 GIMP 中关闭图像?

Pythonic 版本的排序:(忽略更改并关闭)

// close the image WITHOUT saving
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);

Python 过程浏览器中没有“关闭”的内容

4

1 回答 1

0

(你的标题和标签“script-fu”,它是Scheme/Lisp,但随后提到了Python......,所以选择Python......)

理论是脚本不应该干扰用户界面,所以你不能随意关闭图像。

如果您的脚本加载图像,则可以使用 a display=gimp.Display(image)(这是一个gimp.Display对象)向用户显示该图像。您还可以以相同的方式将显示添加到已加载的图像中。由于您创建了显示,您知道它,您拥有它,因此您可以使用 关闭它gimp.delete(display)。当图像的最后一次显示关闭时,图像将退出。

如果您不创建显示,则可以利用显示 ID 是按顺序创建的事实,并且此顺序与图像 ID 匹配,因此除非加载了许多图像而没有显示,或者许多图像有很多显示,显示 ID 和图像 ID 彼此接近。

并且给定一个整数 ID,您可以使用 "secret" 恢复显示gimp._id2display(id),因此如果加载了单个图像,您可以通过类似的方式找到它的显示

for displayID in range(1,image.ID+50):
    display=gimp._id2display(displayID)
    if isinstance(display,gimp.Display):
        break
if not display:
    raise Exception('Display not found')            
gimp.delete(display)

但是,如果加载了多个图像,这将出现异常,因此请注意。

于 2020-02-05T00:15:19.707 回答