EDITED HEAVILY有一些新信息(和赏金)
我正在尝试在python中为gimp创建一个插件.(在Windows上)这个页面http://gimpbook.com/scripting/notes.html建议从shell运行它,或者查看〜/ .xsession-errors
既不工作.我可以从cmd shell运行它,如
gimp-2.8.exe -c --verbose ##(由http://gimpchat.com/viewtopic.php?f=9&t=751建议)
这会导致"pdb.gimp_message(...)"的输出转到终端.
但是!!! 这只有当一切都按预期运行时才有效,我在崩溃时没有输出.
我试过打印声明,它们无处可去.
这个人有类似的问题,但讨论却陷入了困境. 插件通常不起作用,我该如何调试?
在某些地方,我看到了在python-fu控制台中运行它的建议.
这让我无处可去.我需要注释掉导入gimpfu,因为它会引发错误,而且我没有让gtk工作.
我当前的问题是,即使插件在菜单上注册并显示,当出现一些错误并且它没有按预期运行时,我也不知道从哪里开始寻找提示.(我试过点击各种情况,w - w/o选择,没有图像.)
我能够从http://gimpbook.com/scripting/复制并执行示例插件 ,我得到了,工作,但是当我做出改变时,我不知道是什么,并且逐行变形现有程序是乏味的.(每次都要关闭和恢复gimp)
总结一下 -
1-我可以刷新插件而无需重启gimp吗?(所以至少我的慢变形会更快)
2-我可以从python-fu shell运行插件.(而不是只是导入它们以确保它们解析.)
3-是否有错误日志我错过了,或者有什么效果?
4-有没有办法在shell上运行gimp来查看输出?(我最好在cygwin(或virtualbox ..)下)?
5-我还没有查找如何将winpdb连接到现有进程.我如何将它连接到在gimp中运行的python进程?
谢谢
如果我有一个XCF文件(或Gimp支持的任何其他文件),我如何将其转换为例如PNG以进行显示或进一步处理?
我需要从linux上的photoshop PSD文件中的图层中提取文本.有谁知道这是怎么做到的吗?Gimp栅格化文本,您无法复制和粘贴它.另请注意,我不拥有Photoshop程序.
我目前正在使用Gimp调整一些图像的大小.我是一名网络开发人员,但我并没有真正使用图像处理软件,因为大部分图像都是由设计师提供的,因此Gimp工具对我来说非常陌生.我查看了Gimp网站上的所有教程和帮助指南,但我找不到最简单问题的答案:
如何在保持纵横比的同时调整图层大小以适应当前画布?
我实际上是在我的Canvas上设置固定大小并将图像作为图层导入到我的项目中.我当时希望做的是将这个大得多的图像向下缩放,以便在保留宽高比的情况下适合Canvas.我找到了一种缩放Canvas以适应图层的方法,但这不是我想要的.
任何帮助将不胜感激.
我有这个问题,其中笔画选择不会使用选定的颜色.因此,我选择一个区域并转到编辑 - >笔画选择,然后Gimp会自动将我选择的颜色更改为另一种颜色.我不知道如何解决这个问题.
在最近更新到 macOS Catalina 之后,所有程序都在询问我是否为它们提供了正确的权限。不幸的是,GIMP是不是这样,每当我试图使用GIMP我打开任何文件中有以下错误Could not read the contents of Desktop. Error opening directory /Users/myuser/Desktop: Operation not permitted,或像不同的地点Downloads,Documents等打开文件的唯一1路目前右击鼠标并Open with GIMP,它工作正常。但是这个选项是有限的,例如当想要打开很多文件时。
问题是如何在 macOS Catalina 中赋予正确的权限?
我想要做的是从python程序打开gimp(也许使用subprocess.Popen),同时,gimp将以一个python脚本开始,该脚本将打开一个图像并添加一个图层......好吧,如何我可以实现这一点(我希望GIMP有更好的文档......)?
更新:
我这样做了:subprocess.Popen(["gimp", "--batch-interpreter" , "python-fu-eval" , "-b" ,"\'import sys; sys.path.append(\"/home/antoni4040\"); import gimpp; from gimpfu import *; gimpp.main()\'"])但是,即使控制台说"批处理命令成功执行",也没有任何反应......
UPDATE2:
from gimpfu import *
def gimpp():
g = gimp.pdb
images = gimp.image_list()
my_image = images[0]
layers = my_image.layers
new_image = g.gimp_file_load_layer("/home/antoni4040/???????/Layout.png")
my_image.add_layer(new_image)
new_layer = g.gimp_layers_new(my_image, 1024, 1024, RGBA_IMAGE, "PaintHere", 0, NORMAL_MODE)
my_image.add_layer(new_layer)
register('GimpSync', "Sync Gimp with Blender", "", "", "", "", "<Image>/SyncWithBlender", '*', [], [], gimpp)
main()
Run Code Online (Sandbox Code Playgroud) 我需要为GIMP开发一个插件,并希望继续使用PyCharm进行Python编辑等.
仅供参考,我在Windows上.
在指示PyCharm使用GIMP附带的Python解释器之后:
我还添加了一个路径来gimpfu.py摆脱错误from gimpfu import *:
这可以修复导入时的错误,即使设置为Excluded.
我尝试用这个目录设置Sources,Resources并Excluded仍然得到了常量,如错误RGBA-IMAGE,TRANSPARENT_FILL,NORMAL_MODE,等.
关于如何扭曲PyCharm为GIMP插件开发做好事的任何想法?
没有真正运行PyCharm的任何代码,它实际上只是用作一个很好的代码编辑器,便于修改控件等.
我有一堆太大的图像我需要将它们的尺寸从30 kb减小到10 k或5 kb而不会降低质量.我试图改变dpi和像素没有成功.图像变得模糊,因为他们有文字,我在改变后无法读取任何内容.无论如何,我可以在不失去质量的情况下实现这一目标吗?我的应用程序中有十几张图像.
提前谢谢,祝你有个愉快的一天.
imagemagick或gimp或其他与linux兼容的工具有什么能够自动检测图像上的单个对象并返回对象的某个位置或将每个对象存储为单独的图像吗?
我有像这样的图像:

对于对象位于网格上的其他图像,我已成功crop在imagemagick中使用运算符,例如3x3网格:
convert -crop 3x3@ in-image.jpg out-image-%d.jpg
Run Code Online (Sandbox Code Playgroud)
crop当没有矩形网格时我无法使用,但我认为白色应足以让对象分离.
gimp ×10
gimpfu ×3
python ×3
image ×2
bash ×1
command-line ×1
graphics ×1
imagemagick ×1
linux ×1
macos ×1
permissions ×1
photoshop ×1
pycharm ×1
python-fu ×1
resize ×1
script-fu ×1
subprocess ×1
updates ×1