如何在 The Gimp 中复制引导线?

问题描述 投票:0回答:3

是否可以将引导线从一张图像复制到另一张图像?
我需要这个,因为我有几张图像需要完全相同的构图,所以我想为此使用指导线。
没有选择和复制引导线的选项,所以我必须手动添加它们。

如果有一点 script-fu 脚本就好了。

好吧,我发现了一些有趣的功能:

(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)

提前致谢!

gimp script-fu
3个回答
5
投票

我真的很想帮助你,但我不确定我是否理解你想要做什么。您可以编辑问题以提供更多详细信息吗?

猜测(等待更多信息)您是否在寻找类似的东西?

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 的一部分,该 API 使用的语法不同于 schema-ish 脚本 fu。

但是第一个问题是你想要实现什么?——之后我们可以担心如何实现的细节。


2
投票

一直想学习 Gimp 脚本 (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 来运行脚本。


0
投票

我无法让其他答案中发布的脚本正常工作,但如果其他人遇到此问题并需要简单的答案:

您可以打开图像,在第一个图像上绘制辅助线,然后将其他图像复制并粘贴为原始图像上的新图层。该指南将保持不变。

© www.soinside.com 2019 - 2024. All rights reserved.