Gimp python插件

时间:2013-04-15 16:24:58

标签: python plugins gimp gimpfu

今天我编写了一个简短的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();

1 个答案:

答案 0 :(得分:1)

在您的脚本中,您使用is比较字符串,它会检查对象标识,因此在这种情况下它将始终返回False,因此您的图层不会重命名。

使用==来比较字符串。除此之外,您的脚本也能完美运行。