GIMP 不会从内存中卸载关闭的图像

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

GIMP exported an image that was closed and not show in GIMP

我需要一点帮助!

我发现 GIMP 并不总是从其工作内存中删除关闭的图像,即使它们没有显示。

正如你在这里看到的,我有 4 个打开的图像,但是当我导出所有图像时,我实际上得到了 5 个 JPG。额外的一张来自我之前玩过的一些图像,导出并保存了 XCF,以防万一我需要它。

这不是我的代码,因为它或多或少直接来自剧本(见下文)。现在这是 GIMP 的一个问题,它解释了为什么我看到 GIMP 像皱纹一样拥抱内存。您可能永远不会看到这个问题,因为许多人在一张或多张图像上打开 GIMP 工作,然后关闭程序。另一方面,我可以将 GIMP 打开数周,以便在我需要某些东西时它可以运行。我对 Word 和浏览器等其他程序也执行同样的操作。

如有任何意见,我们将不胜感激......

        image_list = gimp.image_list()
        image_ptr = len(image_list)
        for image in image_list:
            fullfilepath = os.path.join(output_folder, filename)
            fullfilepath = clean_string(fullfilepath)
            if (overwrite_index == 1):
                fullfilepath = get_clean_filename(fullfilepath)
            if (fullfilepath != ""):
                raw_filename = filename.encode('utf-8')
                pdb.gimp_file_save(image, image.active_layer, fullfilepath, raw_filename)
                pdb.gimp_image_clean_all(image)

调试了我的代码,它很可靠 - 我认为这是 GIMP 中的一个老错误

gimp
1个回答
0
投票

保存图像从未将其从内存中删除(作为用户,您可以保存图像并继续使用它......)。

要从内存中删除图像,您必须调用

gimp.delete(image)
但这只有在图像没有附加
gimp.Display
时才可能实现。如果图像是由用户加载的,则脚本无法获取对
Display
的引用,因此无法销毁
Display
以使图像可删除。换句话说,脚本只能删除它自己创建的图像(普通创建、从文件打开或复制加载的图像)(*)。

请注意,

Images
可停靠对话框 (
Windows > Dockable dialogs > Images
) 显示 Gimp 中加载的所有图像,甚至是那些没有连接显示器的图像。这些不显示的图像可以删除(对话框底部的图标,或右键单击)。

(*) Gimp 脚本/插件中的设计不能干扰 UI。

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