微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GIMP 脚本在终端中运行时可以找到自定义调色板,但在程序中无法找到

如何解决GIMP 脚本在终端中运行时可以找到自定义调色板,但在程序中无法找到

我想从这样的脚本内部执行 gimp -if --batch-interpreter python-fu-eval -b 'import sys;sys.path=["."]+sys.path;import colorindex;colorindex.python_colorindex("gimptemp.jpg")' -b 'pdb.gimp_quit(1)'(在终端中运行时可以正常工作)colorindex = subprocess.run(["/usr/bin/gimp","-if","--batch-interpreter","python-fu-eval","-b","import sys;sys.path=['.']+sys.path;import colorindex;colorindex.python_colorindex('gimptemp.jpg')","pdb.gimp_quit(1)"])(由于 gimp 函数无法找到所需的调色板而导致错误

错误

GIMP-Error: Calling error for procedure 'gimp-image-convert-indexed':
Palette 'e-ink' not found

Traceback (most recent call last):
  File "/usr/lib/gimp/2.0/python/gimpfu.py",line 827,in _run
    return apply(func,params[1:])
  File "/usr/lib/gimp/2.0/plug-ins/python-eval/python-eval.py",line 25,in code_eval
    exec code in globals()
  File "<string>",line 1,in <module>
  File "./colorindex.py",line 7,in python_colorindex
    pdb.gimp_image_convert_indexed(image,1,4,3,FALSE,"e-ink")
RuntimeError: Palette 'e-ink' not found
batch command experienced an execution error
/usr/bin/gimp: GEGL-WARNING: (gegl-tile-handler-cache.c:977):gegl_tile_cache_destroy: runtime check Failed: (g_queue_is_empty (&cache_queue))
EEEEeEeek! 2 GeglBuffers leaked

我在终端中遇到了同样的问题,当我不小心留下了 -d 标志阻止刷子和东西加载时,但显然我把它去掉了所以我知道这次可能阻止调色板加载,特别是当它在终端。改用 subprocess.Popen 并没有改变错误。当我通过脚本打开 gimp 时,自定义调色板没有显示在调色板托盘 gui 中,但是通过终端运行时它确实显示在 gui 中

这里是 colorindex.py

import os
from gimpfu import *
def python_colorindex(file):
    image = pdb.gimp_file_load(file,file,run_mode=RUN_NONINteraCTIVE)
    drawable = pdb.gimp_image_get_active_layer(image)
    pdb.gimp_image_convert_indexed(image,"e-ink")
    pdb.file_png_save(image,drawable,0)
    pdb.gimp_image_delete(image)
    print("Exit")

解决方法

我无法复制这个,因为我是 Windows 用户,但我假设您的 E-Ink.gpl 调色板保存在您的个人调色板目录中,也许将 gimp 作为 python 的子进程运行不会加载您的个人调色板文件。

您可以尝试通过使用 --gimprc=filename 选项指向您的个人 gimprc 文件来强制 gimp 使用您的个人设置。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。