python-fu gimp получить список элементов

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

Изменить — использование GIMP версии 2.8.2 в macOS Mojave


person Akash Agarwal    schedule 22.10.2018    source источник


Ответы (1)


Вы не перечисляете "предметы" в целом. Вы перечисляете слои, каналы или пути, используя 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 здесь и некоторые другие специализированные пути здесь.

person xenoid    schedule 22.10.2018