Как скопировать контрольные линии в The Gimp? - PullRequest
1 голос
/ 06 марта 2009

Можно ли скопировать направляющие линии из одного изображения в другое?
Мне это нужно, потому что у меня есть несколько изображений, которые нуждаются в одинаковой композиции, поэтому я хочу использовать для этого контрольные линии.
Нет возможности выбрать и скопировать направляющую линию, поэтому я должен добавить их вручную.

Было бы неплохо, если бы был маленький скрипт-фу.

Хорошо, я нашел несколько интересных функций:

(gimp-image-find-next-guide image index)
(gimp_image_add_hguide image xposition)
(gimp_image_add_vguide image yposition)
(gimp_image_get_guide_orientation image guide)
(gimp_image_get_guide_position image guide)

Заранее спасибо!

Ответы [ 2 ]

5 голосов
/ 13 марта 2009

Я бы очень хотел вам помочь, но я не уверен, что понимаю, что вы пытаетесь сделать. Не могли бы вы отредактировать вопрос, чтобы предоставить более подробную информацию?

На предположение (в ожидании дополнительной информации) вы ищете что-то подобное?

guide = 0
while guide = gimp_image_find_next_guide (image_1,guide) != 0
     position = gimp_image_get_guide_position (image_1,guide)
     if gimp_image_get_guide_orientation (image_1,guide) == 0
          gimp_image_add_hguide (image_2,position)
        else
          gimp_image_add_vguide (image_2,position)

Обратите внимание, что это псевдокод, поскольку упомянутые вами функции, по-видимому, являются частью API, использующего синтаксис, отличный от сценария схемы-fu.

Но первый вопрос - что вы пытаетесь достичь? - после этого мы можем позаботиться о деталях того, как.

0 голосов
/ 06 марта 2017

Давным-давно желая изучить Gimp Scripts (PythonFu) и требуя этой функциональности, я использовал псевдокод, предоставленный MarkusQ, и это удобное руководство https://jacksonbates.wordpress.com/python-fu-gimp-scripting-tutorial-pages/, чтобы создать скрипт для копирования инструкций из одного изображения в другое .

#!/usr/bin/env python

from gimpfu import *

def CopyGuidelines(image_1, drawable, image_2):     
    guide = pdb.gimp_image_find_next_guide(image_1, 0)
    while guide != 0 :
        position = pdb.gimp_image_get_guide_position (image_1,guide)        
        if pdb.gimp_image_get_guide_orientation (image_1,guide) == 0:
            pdb.gimp_image_add_hguide (image_2,position)
        else:
            pdb.gimp_image_add_vguide (image_2,position)
        guide = pdb.gimp_image_find_next_guide (image_1,guide)      

register(
    "python-fu-CopyGuidelines",
    "Copy Guidelines",
    "Copy Guidelines from one image to another",
    "Anthony", "JustAGuyCoding", "2017",
    "Copy Guidelines",
    "", # type of image it works on (*, RGB, RGB*, RGBA, GRAY etc...)
    [
        (PF_IMAGE, "image_1", "takes current image", None),
        (PF_DRAWABLE, "drawable", "Input layer", None),
        (PF_IMAGE, "image_2", "takes other image", None)
    ],
    [],
    CopyGuidelines, menu="<Image>/Tools")  

main()

Вам нужно будет скопировать это в файл CopyGuidelines.py и поместить его в каталог плагинов вашего Gimp (см. «Предпочтения»> «Папки») и перезапустить Gimp, чтобы увидеть параметр «CopyGuideline» в разделе «Инструменты». Затем откройте два изображения, выберите одно с Руководствами и выберите CopyGuidelines для запуска сценария.

...