今天我编写了一个简短的python脚本,它应该重命名gimp图像的图层列表,以添加一些标记,这些标记在图层是动画的一部分时使用。该脚本已集成到Gimp菜单中,并且Python-Fu控制台中提供的信息是正确的。但是如果我在Python-Fu控制台或操作菜单中执行脚本,则不会发生任何事情。我无法找到问题。手动将功能内容发布到控制台。
有人知道这个问题的解决方案,或者在Gimp 2.8中遇到过同样的问题吗?
#!/usr/bin/env python
from gimpfu import *;
import os;
def renameAllLayers(img):
print 'Starting ...\n';
for layer in img.layers:
print layer.name + '\n';
if layer.name[-16:] is '(66ms) (replace)':
pass;
elif layer.name[-17:] is '(200ms) (replace)':
pass;
elif layer.name[-10:] is ' (replace)':
layer.name = layer.name[:-10] + '(66ms) (replace)';
print layer.name + '\n';
print 'Finished ...\n';
register(
proc_name=("avedo_rename_all_layers"),
label=("Rename all layers"),
blurb=("Rename all layers so they include all missing flags"),
help=("Help?"),
author=("Andreas Wilhelm"),
copyright=("www.avedo.net"),
date=("2013"),
menu=("<Image>/Avedo Scripts/Layer Renamer"),
imagetypes=("*"),
params=[
(PF_IMAGE, "img", "Select an image", None),
],
results=[],
function=(renameAllLayers)
);
main();
答案 0 :(得分:1)
在您的脚本中,您使用is
比较字符串,它会检查对象标识,因此在这种情况下它将始终返回False
,因此您的图层不会重命名。
使用==
来比较字符串。除此之外,您的脚本也能完美运行。