2

今日、レイヤーがアニメーションの一部である場合に使用されるいくつかのフラグを追加するために、gimp 画像のレイヤーのリストの名前を変更する短い python スクリプトを作成しました。スクリプトは 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=("rename_all_layers"),
    label=("Rename all layers"),
    blurb=("Rename all layers so they include all missing flags"),
    help=("Help?"),
    author=("Andreas Schickedanz"),
    date=("2013"),
    menu=("<Image>/Scripts/Layer Renamer"), 
    imagetypes=("*"),
    params=[
        (PF_IMAGE, "img", "Select an image", None),
    ],
    results=[],
    function=(renameAllLayers)
)

main()
4

1 に答える 1

1

isスクリプトでは、オブジェクトのアイデンティティをチェックするを使用して文字列を比較するためFalse、この場合は常に返されるため、レイヤーの名前は変更されません。

==代わりに文字列を比較するために使用します。それに加えて、スクリプトは完全に機能します。

于 2013-04-15T16:34:01.070 に答える