You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GIMP会话间保存插件的文件夹路径设置?

GIMP插件会话间保存文件夹路径的解决方案

方法一:用GIMP原生API(推荐)

利用pdb.gimp_set_data()和pdb.gimp_get_data()实现配置存储,这是GIMP官方提供的插件数据持久化方式:

  1. 加载已保存的路径
    在你的插件主函数layerToTilesRC开头,先读取之前保存的配置:
def layerToTilesRC(image, layer, pokeName, direction, shadowsize, loop, pngFolder, gifFolder):
    # 读取保存的路径,键名加插件ID前缀避免冲突
    saved_png = pdb.gimp_get_data("ofn-layer-to-tiles-rc-pngFolder")
    saved_gif = pdb.gimp_get_data("ofn-layer-to-tiles-rc-gifFolder")
    
    # 如果有保存值,覆盖默认传入的路径
    if saved_png is not None:
        pngFolder = saved_png
    if saved_gif is not None:
        gifFolder = saved_gif
    
    # 后续插件逻辑...
  1. 保存用户选择的路径
    在用户确认路径后(比如插件处理流程结束时),执行保存操作:
# 存储路径到GIMP数据系统
pdb.gimp_set_data("ofn-layer-to-tiles-rc-pngFolder", pngFolder)
pdb.gimp_set_data("ofn-layer-to-tiles-rc-gifFolder", gifFolder)
# 强制写入磁盘,确保重启GIMP后数据不丢失
pdb.gimp_data_flush()

方法二:手动读写配置文件

如果原生API使用有问题,可以自己创建配置文件存储:

  1. 确定配置文件位置
    选择GIMP用户目录作为存储位置,避免权限问题:
import os
import json
from pathlib import Path

# 根据系统自动定位GIMP配置目录
if os.name == 'nt':
    gimp_config_dir = os.path.expanduser("~/AppData/Roaming/GIMP/2.10")
else:
    gimp_config_dir = os.path.expanduser("~/.config/GIMP/2.10")
config_file = Path(gimp_config_dir) / "ofn-layer-to-tiles-rc-config.json"
  1. 加载配置
    在插件主函数开头读取配置:
def layerToTilesRC(image, layer, pokeName, direction, shadowsize, loop, pngFolder, gifFolder):
    if config_file.exists():
        with open(config_file, 'r', encoding='utf-8') as f:
            config = json.load(f)
            pngFolder = config.get('pngFolder', pngFolder)
            gifFolder = config.get('gifFolder', gifFolder)
    
    # 后续插件逻辑...
  1. 保存配置
    在用户选择路径后写入文件:
config = {
    'pngFolder': pngFolder,
    'gifFolder': gifFolder
}
with open(config_file, 'w', encoding='utf-8') as f:
    json.dump(config, f)

对你的register代码的调整

把PF_DIRNAME的默认值从None改为空字符串,更兼容后续的赋值逻辑:

(PF_DIRNAME, 'pngFolder', 'Spritesheet folder', ""),
(PF_DIRNAME, 'gifFolder', 'Finished gif folder', ""),

常见问题排查

  • 使用原生API时,必须调用pdb.gimp_data_flush(),否则数据只存在内存中,重启GIMP会丢失。
  • 手动写配置文件时,要确认路径在不同系统下的正确性,比如Windows和Linux的GIMP配置目录位置不同。

内容的提问来源于stack exchange,提问作者spaghetti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 05:22:24