Chcę wstawić bieżący obraz w pamięci podręcznej do mojego bieżącego projektu gimp. Możesz to łatwo zrobić, naciskając ctrl+v, ale wtedy nowa warstwa będzie pływać. Kiedy tworzysz z niego nową warstwę, będzie to pierwsza warstwa i muszę ją przeciągnąć w odpowiednie miejsce na mapie warstw. Kiedy użyję "wstaw jako nową warstwę", warstwa zostanie poprawnie posortowana w mapie warstw, ale wstawka nie będzie na pozycji x/y poprzednio wybranej warstwy!

Znalazłem skrypt, który robi coś bardzo podobnego, ale używa gimp-edit-copy i gimp-edit-paste do wstawiania warstwy, co nie jest tym, czego chcę. Jak mogę to zmienić, aby zamiast tego wstawiał obraz z pamięci podręcznej?

(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")
    )
  )  
 )
)
0
mschmidt 21 listopad 2018, 19:43

1 odpowiedź

Najlepsza odpowiedź

Po prostu usuń wiersz (gimp-edit-copy inLayer) i powinien wkleić to, co jest w schowku.

0
xenoid 22 listopad 2018, 00:53