【问题标题】:How to get a path for script-fu function: gimp-drawable-edit-stroke-item如何获取 script-fu 函数的路径:gimp-drawable-edit-stroke-item
【发布时间】:2021-07-24 18:55:17
【问题描述】:

我正在努力从 id 获取实际路径(或矢量)对象。我想画一条路径,目前建议的这样做方法似乎是方法gimp-drawable-edit-stroke-item。这需要一个项目作为输入。顺便说一句,我试图在 script-fu 中找到所有预定义类型的列表,但也没有找到任何东西。所以我不确定典型的 Item 到底是什么,但看起来你可以将向量传递给它。

到目前为止,我能找到的所有识别路径都是使用(cadr(gimp-image-get-vectors p-image)),这似乎只给了我一个 id。由于以下(gimp-drawable-edit-stroke-item p-drawable (cadr(gimp-image-get-vectors p-image))) 导致“错误:gimp-drawable-edit-stroke-item 的参数 2 的类型无效”。

【问题讨论】:

    标签: gimp script-fu


    【解决方案1】:

    必须浏览列表而不是使用字段名称是我从不使用 Scheme/script-fu 的原因,因为 Gimp 可以用 Python 编写脚本。

    这就是说,以我有限的 Lisp 知识:

    • (gimp-image-get-vectors p-image) 返回一个 (count (v1 v2 v3 ...)) 列表
    • 所以(cadr (gimp-image-get-vectors p-image)) 返回列表,而不是列表中的单个项目。

    您可以直接使用(gimp-image-get-vectors p-image) 获取“活动路径”(使用路径列表并不会告诉您列表中的哪个路径是用户的意思)。

    【讨论】:

      【解决方案2】:

      “我想画一条路”

      相比 gimp-drawable-edit-stroke-item,gimp-pencil(或 gimp-brush)可以做到:

      (define (stroke-path drawable color width . path)
        (gimp-context-set-line-miter-limit 5)         ; default: 10, default mitre up to 60 pixels
        (gimp-context-set-stroke-method STROKE-LINE)  ; default STROKE-PAINT-METHOD
        (gimp-context-set-line-cap-style CAP-BUTT)    ; CAP-ROUND, CAP-SQUARE
        (gimp-context-set-line-join-style JOIN-ROUND) ; JOIN-MITER, JOIN-ROUND, JOIN-BEVEL
        (gimp-context-set-foreground color)
        (gimp-context-set-line-width width)           ; default: 6
      
        (let ((vec (apply vector path)))
          (gimp-pencil drawable (vector-length vec) vec)
         )
        )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多