使用Gimp Script-Fu关闭图像

问题描述 投票:0回答:1

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

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

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

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

gimp script-fu
1个回答
0
投票

((标题和标签为“ script-fu”,为Scheme / Lisp,但随后提到了Python ...,因此适用于Python ...)

理论是脚本不应干扰UI,因此您不能随意关闭图像。

如果脚本加载图像,则可以使用display=gimp.Display(image)(这是gimp.Display对象)向用户显示图像。您也可以用相同的方法将显示添加到已加载的图像中。自创建显示以来,您就知道了它的所有权,因此可以使用gimp.delete(display)将其关闭。当图像的最后一个显示关闭时,该图像被退出。

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

给定整数ID,您可以使用“秘密” 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)

但是如果加载的图像不止一个,则会出现异常,请当心。

© www.soinside.com 2019 - 2024. All rights reserved.