Gimpfu 插件未启动
Gimpfu Plugin is not starting
我目前正在尝试为 Gimp.It 编写我自己的插件,这是我的第一次,也是我在 python 中的第一行,所以请对我温柔一点。该代码用于让我的生活更轻松地为 DCS 创建 Liveries。为此,它需要能够按名称找到一个层并将其设为 visible/invisible(在我的例子中是 countrty 标志)。另外,还没有实现,我想从文本层更改文本。
*之后添加
详细说明:
最终目标是在名为“DCS”的飞行模拟器中更改飞机的涂装方案。
开发人员允许我们访问纹理模板。
它们带有不同的基础层和层组,无需更改。
在那里我添加了我自己的图层组,其中包含我所有的图层和图层组。
该脚本应该可以轻松地在高能见度和低能见度绘画方案之间切换。
(尚未实施)通过隐藏相应的“低可见度”、“高可见度”图层组应该更容易实现。
此外,我还想使用名称、呼号和选择的标志来个性化涂装方案。
Name 和 Callsign 还没有文本层,也没有实现。
飞机座舱盖两侧(左、右)会有一面旗帜。
每个旗帜都有自己的层,有 200 多个。
他们的层组结构将是“WA”/“Flag + Callsign”/“Flags Right”,“Flags Left”。
在他们的图层组中,我只想让 by input choosen Flag 可见。
#!/usr/bin/env python
from gimpfu import *
def ui_callsign(image, drawable, flag_var, vis_var, name_var, callsign_var):
pdb.gimp_message("main function call")
flag_list = ["ad", "ae", "af", "ag", "ai", "al", "am", "ao", "aq", "ar", "as", "at", "au", "aw", "ax", "az", "ba", "bb", "bd", "be", "bf", "bg", "bh", "bi", "bj", "bl", "bm", "bn", "bo", "bq", "br", "bs", "bt", "bv", "bw", "by", "bz", "ca", "cc", "cd", "cf", "cg", "ch", "ci", "ck", "cl", "cm", "cn", "co", "cr", "cu", "cv", "cw", "cx", "cy", "cz", "de", "dj", "dk", "dm", "do", "dz", "ec", "ee", "eg", "eh", "er", "es", "et", "fi", "fj", "fk", "fm", "fo", "fr", "ga", "gb", "gb-eng", "gb-nir", "gb-sct", "gb-wls", "gd", "ge", "gf", "gg", "gh", "gi", "gl", "gm", "gn", "gp", "gq", "gr", "gt", "gu", "gw", "gy", "hk", "hm", "hn", "hr", "ht", "hu", "id", "ie", "il", "im", "in", "io", "iq", "ir", "is", "it", "je", "jm", "jo", "jp", "ke", "kg", "kh", "ki", "km", "kn", "kp", "kr", "kw", "ky", "kz", "la", "lb", "lc", "li", "lk", "lr", "ls", "lt", "lu", "lv", "ly", "ma", "mc", "md", "me", "mf", "mg", "mh", "mk", "ml", "mm", "mn", "mo", "mp", "mq", "mr", "ms", "mt", "mu", "mv", "mw", "mx", "my", "mz", "na", "nc", "ne", "nf", "ng", "ni", "nl", "no", "np", "nr", "nu", "nz", "om", "pa", "pe", "pf", "pg", "ph", "pk", "pl", "pm", "pn", "pr", "ps", "pt", "pt", "pw", "py", "qa", "re", "ro", "rs", "ru", "rw", "sa", "sb", "sc", "sd", "se", "sg", "sh", "si", "sj", "sk", "sl", "sm", "sn", "so", "sr", "ss", "st", "sv", "sx", "sy", "sz", "tc", "td", "tf", "tg", "th", "tj", "tk", "tl", "tm", "tn", "to", "tr", "tt", "tv", "tw", "tz", "ua", " ug", "um", "us", "uy", "uz", "va", "vc", "ve", "vg", "vi", "vn", "vu", "wf", "ws", "xk", "ye", "yt", "za", "zm", "zw"
] #List of all flags
pdb.gimp_message("created list")
for x in flag_list: #go through list one by one
pdb.gimp_message(x)
if x == flag_var: #if at by user choosen flag:
layer_name_right = x + ".png #1" #add ending to get right layer name
layer_name_left = x + ".png"
layer_right = pdb.gimp_image_get_layer_by_name(image, layer_name_right) #find right layer by layer name
layer_left = pdb.gimp_image_get_layer_by_name(image, layer_name_left)
pdb.gimp_item_set_visible(layer_right, TRUE) #set right layer to visible
pdb.gimp_item_set_visible(layer_left, TRUE)
else: #all other flag layers same procedure as above but set to invisible
layer_name_right = x + ".png #1"
layer_name_left = x + ".png"
layer_right = pdb.gimp_image_get_layer_by_name(image, layer_name_right)
layer_left = pdb.gimp_image_get_layer_by_name(image, layer_name_left)
pdb.gimp_item_set_visible(layer_right, FALSE)
pdb.gimp_item_set_visible(layer_left, FALSE)
pdb.gimp_message("end loop")
return
register(
"python_fu_ui_callsign",
"Enter Name, Callsign and Flag selection",
"Let's you easily change Name, Callsign and Flag on DCS Livery"
"David Buergel", "David Buergel", "2022",
"Ui Callsign",
"Ui Callsign",
"",
[
(PF_IMAGE, "image", "takes current image", None),
(PF_DRAWABLE, "drawable", "Input layer", None),
(PF_OPTION, "flag_var", "Flag", 0,
["ad", "ae", "af", "ag", "ai", "al", "am", "ao", "aq", "ar", "as", "at", "au", "aw", "ax", "az", "ba", "bb", "bd", "be", "bf", "bg", "bh", "bi", "bj", "bl", "bm", "bn", "bo", "bq", "br", "bs", "bt", "bv", "bw", "by", "bz", "ca", "cc", "cd", "cf", "cg", "ch", "ci", "ck", "cl", "cm", "cn", "co", "cr", "cu", "cv", "cw", "cx", "cy", "cz", "de", "dj", "dk", "dm", "do", "dz", "ec", "ee", "eg", "eh", "er", "es", "et", "fi", "fj", "fk", "fm", "fo", "fr", "ga", "gb", "gb-eng", "gb-nir", "gb-sct", "gb-wls", "gd", "ge", "gf", "gg", "gh", "gi", "gl", "gm", "gn", "gp", "gq", "gr", "gt", "gu", "gw", "gy", "hk", "hm", "hn", "hr", "ht", "hu", "id", "ie", "il", "im", "in", "io", "iq", "ir", "is", "it", "je", "jm", "jo", "jp", "ke", "kg", "kh", "ki", "km", "kn", "kp", "kr", "kw", "ky", "kz", "la", "lb", "lc", "li", "lk", "lr", "ls", "lt", "lu", "lv", "ly", "ma", "mc", "md", "me", "mf", "mg", "mh", "mk", "ml", "mm", "mn", "mo", "mp", "mq", "mr", "ms", "mt", "mu", "mv", "mw", "mx", "my", "mz", "na", "nc", "ne", "nf", "ng", "ni", "nl", "no", "np", "nr", "nu", "nz", "om", "pa", "pe", "pf", "pg", "ph", "pk", "pl", "pm", "pn", "pr", "ps", "pt", "pt", "pw", "py", "qa", "re", "ro", "rs", "ru", "rw", "sa", "sb", "sc", "sd", "se", "sg", "sh", "si", "sj", "sk", "sl", "sm", "sn", "so", "sr", "ss", "st", "sv", "sx", "sy", "sz", "tc", "td", "tf", "tg", "th", "tj", "tk", "tl", "tm", "tn", "to", "tr", "tt", "tv", "tw", "tz", "ua", " ug", "um", "us", "uy", "uz", "va", "vc", "ve", "vg", "vi", "vn", "vu", "wf", "ws", "xk", "ye", "yt", "za", "zm", "zw"
]
),
(PF_RADIO, "vis_var", "Vis", "vis_value",
(
("High Vis", "high_vis_value"),
("Low Vis", "low_vis_value")
)
),
(PF_TEXT, "name_var", "Name", "enter Name"),
(PF_TEXT, "callsign_var", "Callsign", "enter Callsign")
],
[],
ui_callsign, menu="<Image>/Filters")
main()
插件出现在 Gimp 中并为我提供了所有正确的选项。单击确定后,灰色显示正常并取消,没有任何反应。错误控制台中没有消息。
如果能得到所有帮助,我会很高兴
因为你在 Ubuntu,你可以在终端启动 Gimp 来检查错误(这在 OSX 也是可行的,在 Windows 你必须使用 gimp-console
).当你这样做时,当你 运行 你的脚本时你会看到这个:
Traceback (most recent call last):
File "/Gimp-dev/2.10.24/run/lib/gimp/2.0/python/gimpfu.py", line 735, in response
params.append(wid.get_value())
File "/Gimp-dev/2.10.24/run/lib/gimp/2.0/python/gimpfu.py", line 567, in get_value
return self.active_value
AttributeError: 'RadioEntry' object has no attribute 'active_value'
由于您只有一个单选按钮小部件,原因不难找到,您的代码是:
(PF_RADIO, "vis_var", "Vis", "vis_value",
(
("High Vis", "high_vis_value"),
("Low Vis", "low_vis_value")
)
),
... 其中第三个参数应该是默认设置的值。但是由于 "vis_value"
不是这两个可能值之一,所以这是行不通的。将其更改为 "high_vis_value"
或 "low_vis_value"
.
一些补充说明:
- 在小部件声明中,您可以重复使用标志列表,这样可以确保一致性。
- 迭代层可能比迭代标志更有效。
- 您不需要“drawable”参数
- 当您在终端中 运行 Gimp 时,您 Python 代码中的
print
语句将打印到控制台,这比使用 gimp_message()
- 要优雅地处理您的选项,您可以检查 this
- 一些调试策略见this(其中一些也适用于Linux)
- 要更改文本图层中的文本,请使用
pdb.gimp_text_layer_set_text(layer, text)
。但这假设图层仍然是纯文本图层。如果不是在某些情况下,可以恢复文本信息,您可以使用上一层的字体信息重新创建一个新层。在所有情况下,这都可能很棘手,因为如果图层大小发生变化,您可能必须重新定位图层。
- 我真的不知道你在做什么,但我觉得使用足够的图层组会让事情变得更容易(你可以切换组的可见性)
您使用前四个建议进行编码:
#!/usr/bin/env python
from gimpfu import *
flag_list = ["ad", "ae", "af", "ag", "ai", "al", "am", "ao", "aq", "ar", "as", "at", "au", "aw", "ax", "az", "ba", "bb", "bd", "be", "bf", "bg", "bh", "bi", "bj", "bl", "bm", "bn", "bo", "bq", "br", "bs", "bt", "bv", "bw", "by", "bz", "ca", "cc", "cd", "cf", "cg", "ch", "ci", "ck", "cl", "cm", "cn", "co", "cr", "cu", "cv", "cw", "cx", "cy", "cz", "de", "dj", "dk", "dm", "do", "dz", "ec", "ee", "eg", "eh", "er", "es", "et", "fi", "fj", "fk", "fm", "fo", "fr", "ga", "gb", "gb-eng", "gb-nir", "gb-sct", "gb-wls", "gd", "ge", "gf", "gg", "gh", "gi", "gl", "gm", "gn", "gp", "gq", "gr", "gt", "gu", "gw", "gy", "hk", "hm", "hn", "hr", "ht", "hu", "id", "ie", "il", "im", "in", "io", "iq", "ir", "is", "it", "je", "jm", "jo", "jp", "ke", "kg", "kh", "ki", "km", "kn", "kp", "kr", "kw", "ky", "kz", "la", "lb", "lc", "li", "lk", "lr", "ls", "lt", "lu", "lv", "ly", "ma", "mc", "md", "me", "mf", "mg", "mh", "mk", "ml", "mm", "mn", "mo", "mp", "mq", "mr", "ms", "mt", "mu", "mv", "mw", "mx", "my", "mz", "na", "nc", "ne", "nf", "ng", "ni", "nl", "no", "np", "nr", "nu", "nz", "om", "pa", "pe", "pf", "pg", "ph", "pk", "pl", "pm", "pn", "pr", "ps", "pt", "pt", "pw", "py", "qa", "re", "ro", "rs", "ru", "rw", "sa", "sb", "sc", "sd", "se", "sg", "sh", "si", "sj", "sk", "sl", "sm", "sn", "so", "sr", "ss", "st", "sv", "sx", "sy", "sz", "tc", "td", "tf", "tg", "th", "tj", "tk", "tl", "tm", "tn", "to", "tr", "tt", "tv", "tw", "tz", "ua", " ug", "um", "us", "uy", "uz", "va", "vc", "ve", "vg", "vi", "vn", "vu", "wf", "ws", "xk", "ye", "yt", "za", "zm", "zw"
] #List of all flags
suffix_R="png #1"
suffix_L="png"
def ui_callsign(image, flag_var, vis_var, name_var, callsign_var):
image.undo_group_start()
flag_searched=flag_list[flag_var]
for layer in image.layers:
print "Processing %s" % layer.name
tokens=layer.name.split(".",1) # Split on "."
if len(tokens)!=2:
print "No dot"
continue # Not dot in name, ignore other layers
flag,suffix=tokens
if flag not in flag_list:
print "Not a known flag"
continue # Ignore other layers
if flag==flag_searched and suffix==suffix_R: # Requested flag and on the right
print "Recognized"
layer.visible=True
else:
print "%s!=%s or %s!=%s" % (flag,flag_searched,suffix,suffix_R)
layer.visible=False
image.undo_group_end()
return
register(
"python_fu_ui_callsign",
"Enter Name, Callsign and Flag selection",
"Let's you easily change Name, Callsign and Flag on DCS Livery"
"David Buergel", "David Buergel", "2022",
"Ui Callsign",
"Ui Callsign",
"*",
[
(PF_IMAGE, "image", "takes current image", None),
(PF_OPTION, "flag_var", "Flag", 0,flag_list),
(PF_RADIO, "vis_var", "Vis", "vis_value",
(
("High Vis", "high_vis_value"),
("Low Vis", "low_vis_value")
)
),
(PF_TEXT, "name_var", "Name", "enter Name"),
(PF_TEXT, "callsign_var", "Callsign", "enter Callsign")
],
[],
ui_callsign, menu="<Image>/Test")
main()
我目前正在尝试为 Gimp.It 编写我自己的插件,这是我的第一次,也是我在 python 中的第一行,所以请对我温柔一点。该代码用于让我的生活更轻松地为 DCS 创建 Liveries。为此,它需要能够按名称找到一个层并将其设为 visible/invisible(在我的例子中是 countrty 标志)。另外,还没有实现,我想从文本层更改文本。
*之后添加
详细说明:
最终目标是在名为“DCS”的飞行模拟器中更改飞机的涂装方案。
开发人员允许我们访问纹理模板。
它们带有不同的基础层和层组,无需更改。
在那里我添加了我自己的图层组,其中包含我所有的图层和图层组。
该脚本应该可以轻松地在高能见度和低能见度绘画方案之间切换。
(尚未实施)通过隐藏相应的“低可见度”、“高可见度”图层组应该更容易实现。
此外,我还想使用名称、呼号和选择的标志来个性化涂装方案。
Name 和 Callsign 还没有文本层,也没有实现。
飞机座舱盖两侧(左、右)会有一面旗帜。
每个旗帜都有自己的层,有 200 多个。
他们的层组结构将是“WA”/“Flag + Callsign”/“Flags Right”,“Flags Left”。
在他们的图层组中,我只想让 by input choosen Flag 可见。
#!/usr/bin/env python
from gimpfu import *
def ui_callsign(image, drawable, flag_var, vis_var, name_var, callsign_var):
pdb.gimp_message("main function call")
flag_list = ["ad", "ae", "af", "ag", "ai", "al", "am", "ao", "aq", "ar", "as", "at", "au", "aw", "ax", "az", "ba", "bb", "bd", "be", "bf", "bg", "bh", "bi", "bj", "bl", "bm", "bn", "bo", "bq", "br", "bs", "bt", "bv", "bw", "by", "bz", "ca", "cc", "cd", "cf", "cg", "ch", "ci", "ck", "cl", "cm", "cn", "co", "cr", "cu", "cv", "cw", "cx", "cy", "cz", "de", "dj", "dk", "dm", "do", "dz", "ec", "ee", "eg", "eh", "er", "es", "et", "fi", "fj", "fk", "fm", "fo", "fr", "ga", "gb", "gb-eng", "gb-nir", "gb-sct", "gb-wls", "gd", "ge", "gf", "gg", "gh", "gi", "gl", "gm", "gn", "gp", "gq", "gr", "gt", "gu", "gw", "gy", "hk", "hm", "hn", "hr", "ht", "hu", "id", "ie", "il", "im", "in", "io", "iq", "ir", "is", "it", "je", "jm", "jo", "jp", "ke", "kg", "kh", "ki", "km", "kn", "kp", "kr", "kw", "ky", "kz", "la", "lb", "lc", "li", "lk", "lr", "ls", "lt", "lu", "lv", "ly", "ma", "mc", "md", "me", "mf", "mg", "mh", "mk", "ml", "mm", "mn", "mo", "mp", "mq", "mr", "ms", "mt", "mu", "mv", "mw", "mx", "my", "mz", "na", "nc", "ne", "nf", "ng", "ni", "nl", "no", "np", "nr", "nu", "nz", "om", "pa", "pe", "pf", "pg", "ph", "pk", "pl", "pm", "pn", "pr", "ps", "pt", "pt", "pw", "py", "qa", "re", "ro", "rs", "ru", "rw", "sa", "sb", "sc", "sd", "se", "sg", "sh", "si", "sj", "sk", "sl", "sm", "sn", "so", "sr", "ss", "st", "sv", "sx", "sy", "sz", "tc", "td", "tf", "tg", "th", "tj", "tk", "tl", "tm", "tn", "to", "tr", "tt", "tv", "tw", "tz", "ua", " ug", "um", "us", "uy", "uz", "va", "vc", "ve", "vg", "vi", "vn", "vu", "wf", "ws", "xk", "ye", "yt", "za", "zm", "zw"
] #List of all flags
pdb.gimp_message("created list")
for x in flag_list: #go through list one by one
pdb.gimp_message(x)
if x == flag_var: #if at by user choosen flag:
layer_name_right = x + ".png #1" #add ending to get right layer name
layer_name_left = x + ".png"
layer_right = pdb.gimp_image_get_layer_by_name(image, layer_name_right) #find right layer by layer name
layer_left = pdb.gimp_image_get_layer_by_name(image, layer_name_left)
pdb.gimp_item_set_visible(layer_right, TRUE) #set right layer to visible
pdb.gimp_item_set_visible(layer_left, TRUE)
else: #all other flag layers same procedure as above but set to invisible
layer_name_right = x + ".png #1"
layer_name_left = x + ".png"
layer_right = pdb.gimp_image_get_layer_by_name(image, layer_name_right)
layer_left = pdb.gimp_image_get_layer_by_name(image, layer_name_left)
pdb.gimp_item_set_visible(layer_right, FALSE)
pdb.gimp_item_set_visible(layer_left, FALSE)
pdb.gimp_message("end loop")
return
register(
"python_fu_ui_callsign",
"Enter Name, Callsign and Flag selection",
"Let's you easily change Name, Callsign and Flag on DCS Livery"
"David Buergel", "David Buergel", "2022",
"Ui Callsign",
"Ui Callsign",
"",
[
(PF_IMAGE, "image", "takes current image", None),
(PF_DRAWABLE, "drawable", "Input layer", None),
(PF_OPTION, "flag_var", "Flag", 0,
["ad", "ae", "af", "ag", "ai", "al", "am", "ao", "aq", "ar", "as", "at", "au", "aw", "ax", "az", "ba", "bb", "bd", "be", "bf", "bg", "bh", "bi", "bj", "bl", "bm", "bn", "bo", "bq", "br", "bs", "bt", "bv", "bw", "by", "bz", "ca", "cc", "cd", "cf", "cg", "ch", "ci", "ck", "cl", "cm", "cn", "co", "cr", "cu", "cv", "cw", "cx", "cy", "cz", "de", "dj", "dk", "dm", "do", "dz", "ec", "ee", "eg", "eh", "er", "es", "et", "fi", "fj", "fk", "fm", "fo", "fr", "ga", "gb", "gb-eng", "gb-nir", "gb-sct", "gb-wls", "gd", "ge", "gf", "gg", "gh", "gi", "gl", "gm", "gn", "gp", "gq", "gr", "gt", "gu", "gw", "gy", "hk", "hm", "hn", "hr", "ht", "hu", "id", "ie", "il", "im", "in", "io", "iq", "ir", "is", "it", "je", "jm", "jo", "jp", "ke", "kg", "kh", "ki", "km", "kn", "kp", "kr", "kw", "ky", "kz", "la", "lb", "lc", "li", "lk", "lr", "ls", "lt", "lu", "lv", "ly", "ma", "mc", "md", "me", "mf", "mg", "mh", "mk", "ml", "mm", "mn", "mo", "mp", "mq", "mr", "ms", "mt", "mu", "mv", "mw", "mx", "my", "mz", "na", "nc", "ne", "nf", "ng", "ni", "nl", "no", "np", "nr", "nu", "nz", "om", "pa", "pe", "pf", "pg", "ph", "pk", "pl", "pm", "pn", "pr", "ps", "pt", "pt", "pw", "py", "qa", "re", "ro", "rs", "ru", "rw", "sa", "sb", "sc", "sd", "se", "sg", "sh", "si", "sj", "sk", "sl", "sm", "sn", "so", "sr", "ss", "st", "sv", "sx", "sy", "sz", "tc", "td", "tf", "tg", "th", "tj", "tk", "tl", "tm", "tn", "to", "tr", "tt", "tv", "tw", "tz", "ua", " ug", "um", "us", "uy", "uz", "va", "vc", "ve", "vg", "vi", "vn", "vu", "wf", "ws", "xk", "ye", "yt", "za", "zm", "zw"
]
),
(PF_RADIO, "vis_var", "Vis", "vis_value",
(
("High Vis", "high_vis_value"),
("Low Vis", "low_vis_value")
)
),
(PF_TEXT, "name_var", "Name", "enter Name"),
(PF_TEXT, "callsign_var", "Callsign", "enter Callsign")
],
[],
ui_callsign, menu="<Image>/Filters")
main()
插件出现在 Gimp 中并为我提供了所有正确的选项。单击确定后,灰色显示正常并取消,没有任何反应。错误控制台中没有消息。
如果能得到所有帮助,我会很高兴
因为你在 Ubuntu,你可以在终端启动 Gimp 来检查错误(这在 OSX 也是可行的,在 Windows 你必须使用 gimp-console
).当你这样做时,当你 运行 你的脚本时你会看到这个:
Traceback (most recent call last):
File "/Gimp-dev/2.10.24/run/lib/gimp/2.0/python/gimpfu.py", line 735, in response
params.append(wid.get_value())
File "/Gimp-dev/2.10.24/run/lib/gimp/2.0/python/gimpfu.py", line 567, in get_value
return self.active_value
AttributeError: 'RadioEntry' object has no attribute 'active_value'
由于您只有一个单选按钮小部件,原因不难找到,您的代码是:
(PF_RADIO, "vis_var", "Vis", "vis_value",
(
("High Vis", "high_vis_value"),
("Low Vis", "low_vis_value")
)
),
... 其中第三个参数应该是默认设置的值。但是由于 "vis_value"
不是这两个可能值之一,所以这是行不通的。将其更改为 "high_vis_value"
或 "low_vis_value"
.
一些补充说明:
- 在小部件声明中,您可以重复使用标志列表,这样可以确保一致性。
- 迭代层可能比迭代标志更有效。
- 您不需要“drawable”参数
- 当您在终端中 运行 Gimp 时,您 Python 代码中的
print
语句将打印到控制台,这比使用gimp_message()
- 要优雅地处理您的选项,您可以检查 this
- 一些调试策略见this(其中一些也适用于Linux)
- 要更改文本图层中的文本,请使用
pdb.gimp_text_layer_set_text(layer, text)
。但这假设图层仍然是纯文本图层。如果不是在某些情况下,可以恢复文本信息,您可以使用上一层的字体信息重新创建一个新层。在所有情况下,这都可能很棘手,因为如果图层大小发生变化,您可能必须重新定位图层。 - 我真的不知道你在做什么,但我觉得使用足够的图层组会让事情变得更容易(你可以切换组的可见性)
您使用前四个建议进行编码:
#!/usr/bin/env python
from gimpfu import *
flag_list = ["ad", "ae", "af", "ag", "ai", "al", "am", "ao", "aq", "ar", "as", "at", "au", "aw", "ax", "az", "ba", "bb", "bd", "be", "bf", "bg", "bh", "bi", "bj", "bl", "bm", "bn", "bo", "bq", "br", "bs", "bt", "bv", "bw", "by", "bz", "ca", "cc", "cd", "cf", "cg", "ch", "ci", "ck", "cl", "cm", "cn", "co", "cr", "cu", "cv", "cw", "cx", "cy", "cz", "de", "dj", "dk", "dm", "do", "dz", "ec", "ee", "eg", "eh", "er", "es", "et", "fi", "fj", "fk", "fm", "fo", "fr", "ga", "gb", "gb-eng", "gb-nir", "gb-sct", "gb-wls", "gd", "ge", "gf", "gg", "gh", "gi", "gl", "gm", "gn", "gp", "gq", "gr", "gt", "gu", "gw", "gy", "hk", "hm", "hn", "hr", "ht", "hu", "id", "ie", "il", "im", "in", "io", "iq", "ir", "is", "it", "je", "jm", "jo", "jp", "ke", "kg", "kh", "ki", "km", "kn", "kp", "kr", "kw", "ky", "kz", "la", "lb", "lc", "li", "lk", "lr", "ls", "lt", "lu", "lv", "ly", "ma", "mc", "md", "me", "mf", "mg", "mh", "mk", "ml", "mm", "mn", "mo", "mp", "mq", "mr", "ms", "mt", "mu", "mv", "mw", "mx", "my", "mz", "na", "nc", "ne", "nf", "ng", "ni", "nl", "no", "np", "nr", "nu", "nz", "om", "pa", "pe", "pf", "pg", "ph", "pk", "pl", "pm", "pn", "pr", "ps", "pt", "pt", "pw", "py", "qa", "re", "ro", "rs", "ru", "rw", "sa", "sb", "sc", "sd", "se", "sg", "sh", "si", "sj", "sk", "sl", "sm", "sn", "so", "sr", "ss", "st", "sv", "sx", "sy", "sz", "tc", "td", "tf", "tg", "th", "tj", "tk", "tl", "tm", "tn", "to", "tr", "tt", "tv", "tw", "tz", "ua", " ug", "um", "us", "uy", "uz", "va", "vc", "ve", "vg", "vi", "vn", "vu", "wf", "ws", "xk", "ye", "yt", "za", "zm", "zw"
] #List of all flags
suffix_R="png #1"
suffix_L="png"
def ui_callsign(image, flag_var, vis_var, name_var, callsign_var):
image.undo_group_start()
flag_searched=flag_list[flag_var]
for layer in image.layers:
print "Processing %s" % layer.name
tokens=layer.name.split(".",1) # Split on "."
if len(tokens)!=2:
print "No dot"
continue # Not dot in name, ignore other layers
flag,suffix=tokens
if flag not in flag_list:
print "Not a known flag"
continue # Ignore other layers
if flag==flag_searched and suffix==suffix_R: # Requested flag and on the right
print "Recognized"
layer.visible=True
else:
print "%s!=%s or %s!=%s" % (flag,flag_searched,suffix,suffix_R)
layer.visible=False
image.undo_group_end()
return
register(
"python_fu_ui_callsign",
"Enter Name, Callsign and Flag selection",
"Let's you easily change Name, Callsign and Flag on DCS Livery"
"David Buergel", "David Buergel", "2022",
"Ui Callsign",
"Ui Callsign",
"*",
[
(PF_IMAGE, "image", "takes current image", None),
(PF_OPTION, "flag_var", "Flag", 0,flag_list),
(PF_RADIO, "vis_var", "Vis", "vis_value",
(
("High Vis", "high_vis_value"),
("Low Vis", "low_vis_value")
)
),
(PF_TEXT, "name_var", "Name", "enter Name"),
(PF_TEXT, "callsign_var", "Callsign", "enter Callsign")
],
[],
ui_callsign, menu="<Image>/Test")
main()