3

我在 Gimp 中打开了一个 xcf 文件“BY HAND”。

如何在不询问我是否要保存它的情况下关闭此文件(这也是当前视图/显示)。

我需要注册函数来给我“当前显示”类似 PF_Display ...(如图像和可绘制)

然后我会去使用:

pdb.gimp_display_delete(显示)

如何获得与按“CTRL + W”或按“x”按钮相同的结果?

到目前为止,没有什么对我有用:

1: gimp.pdb.gimp_image_delete(image)

2: display = pdb.gimp_display_new(image)
   pdb.gimp_display_delete(display)

3: use of image.clean_all() in combination with 1: and 2:

这是非常基本的,我已经用谷歌搜索了很多,没有任何帮助,我失败了......

4

1 回答 1

2

理论上,你不能,因为通过设计,Scheme 或 Python API 被阻止干扰 UI。这就是说,我有一个脚本可以做到这一点:

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

基本上它会尝试使用一堆 id 创建一个 Display,并且 Gimp 仅在 id 与 gimp.Display 匹配时才返回一个 gimp.Display。使用上述代码的脚本的工作方式,一次只有一个图像在 Gimp 中处于活动状态。使用多张图像会变得很危险,因为您无法检查哪个显示器与哪个图像搭配。但是,通常显示的 id 是图像之前的 id,因此您可以这样做:

display=gimp._id2display(image.ID-1)
gimp.delete(display)

但是,没有保修,当然我不认识你,我们从未见过面,而且 StackOverflow 也不存在......

于 2017-02-03T17:54:09.273 回答