python-fu gimp получить список предметов - PullRequest
0 голосов
/ 22 октября 2018

Как я могу получить список элементов изображения, используя python-fu?Я пытался найти аналогичную функцию в Python Процедура Браузер и Google, но я не смог найти ни одной.(Моя конечная цель - выбрать текстовый элемент на слое и преобразовать его в путь)

Правка - Использование GIMP версии 2.8.2 в macOS Mojave

1 Ответ

0 голосов
/ 22 октября 2018

Вы не перечисляете "элементы" вообще.Вы перечисляете слои, каналы или пути, используя либо PDB:

for lid in pdb.gimp_image_get_layers(image)
for cid in pdb.gimp_image_get_channels(image)
for vid in pdb.gimp_image_get_vectors(image)

, либо атрибуты объекта изображения:

for l in image.layers
for c in image.channels
for v in image.vectors

Вызовы PDB возвращают целочисленные идентификаторы элементов (используйте gimp._id2drawable(id) / gimp._id2vectors(id) для получения объектов), в то время как атрибуты изображения представляют собой списки gimp.Layer / gimp.Channel / gimp.Vector объектов (и поэтому с ними гораздо проще работать).

Рассказатьесли слой является текстовым слоем, вы должны использовать вызов PDB: pdb.gimp_item_is_text_layer(layer)

Вы можете перебирать текстовые слои таким образом

for textlayer in [l for l in image.layers if pdb.gimp_item_is_text_layer(l)]`

Чтобы получить путь из текстового слоя:

path=pdb.gimp_vectors_new_from_text_layer(image,layer)

Многие примеры сценариев Python здесь и некоторые более специализированные в путях здесь .

...