首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GIMP脚本在终端中运行时可以找到自定义调色板,但在程序中无法找到

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

Stack Overflow用户
提问于 2021-02-06 12:36:05
回答 1查看 52关注 0票数 0

我想从一个脚本中执行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')", "-b", "pdb.gimp_quit(1)"]) (它的错误bc一个gimp函数无法找到所需的调色板)

错误:

代码语言:javascript
复制
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, 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

代码语言:javascript
复制
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, 1, 4, 3, FALSE, FALSE, "E-Ink")
    pdb.file_png_save(image, drawable, file, file, 0, 0, 0, 0, 0, 0, 0)
    pdb.gimp_image_delete(image)
    print("Exit")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-08 19:52:48

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

您可以尝试强制gimp使用您的个人设置,方法是使用-- gimprc =filename选项指向您的个人gimprc文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66073605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档