Gimp - Script-Fu:从缓存插入到新图层,插入到图层图中
Gimp - Script-Fu: insert from cache to new layer, inserted in layer map
我想将缓存中的当前图像插入到我当前的 gimp 项目中。你可以通过 ctrl+v 轻松地做到这一点,但是新层是浮动的。当你用它创建一个新层时,它将是第一层,我必须将它拖到图层图中的正确位置。
当我使用 "insert as new layer" 时,图层将在图层图中正确排序,但插入不会位于先前选择的图层的 x/y 位置!
我找到了一个脚本,它做的事情非常相似,但它使用 gimp-edit-copy 和 gimp-edit-paste 来插入层,这不是我想要的。我该如何更改它,以便它从缓存中插入图像?
(define (script-fu-selection-to-layer inImage inLayer)
(let*
(
(isgroup (car (gimp-item-is-group inLayer)))
(parent (car (gimp-item-get-parent inLayer)))
(layername (car (gimp-item-get-name inLayer)))
(position (car (gimp-image-get-item-position inImage inLayer)))
(newlayer 0)
)
(if (= isgroup 0)
(begin
(gimp-image-undo-group-start inImage)
(gimp-edit-copy inLayer)
(set! newlayer (car (gimp-edit-paste inLayer 1)))
(gimp-floating-sel-to-layer newlayer)
(gimp-item-set-name newlayer (string-append "insert-" layername))
(gimp-image-reorder-item inImage newlayer parent position)
(gimp-selection-none inImage)
(gimp-image-undo-group-end inImage)
)
(begin
(gimp-message "not usable on layergroups")
)
)
)
)
只需删除 (gimp-edit-copy inLayer)
行,它就会粘贴剪贴板中的任何内容。
我想将缓存中的当前图像插入到我当前的 gimp 项目中。你可以通过 ctrl+v 轻松地做到这一点,但是新层是浮动的。当你用它创建一个新层时,它将是第一层,我必须将它拖到图层图中的正确位置。 当我使用 "insert as new layer" 时,图层将在图层图中正确排序,但插入不会位于先前选择的图层的 x/y 位置!
我找到了一个脚本,它做的事情非常相似,但它使用 gimp-edit-copy 和 gimp-edit-paste 来插入层,这不是我想要的。我该如何更改它,以便它从缓存中插入图像?
(define (script-fu-selection-to-layer inImage inLayer)
(let*
(
(isgroup (car (gimp-item-is-group inLayer)))
(parent (car (gimp-item-get-parent inLayer)))
(layername (car (gimp-item-get-name inLayer)))
(position (car (gimp-image-get-item-position inImage inLayer)))
(newlayer 0)
)
(if (= isgroup 0)
(begin
(gimp-image-undo-group-start inImage)
(gimp-edit-copy inLayer)
(set! newlayer (car (gimp-edit-paste inLayer 1)))
(gimp-floating-sel-to-layer newlayer)
(gimp-item-set-name newlayer (string-append "insert-" layername))
(gimp-image-reorder-item inImage newlayer parent position)
(gimp-selection-none inImage)
(gimp-image-undo-group-end inImage)
)
(begin
(gimp-message "not usable on layergroups")
)
)
)
)
只需删除 (gimp-edit-copy inLayer)
行,它就会粘贴剪贴板中的任何内容。