J'essaie de faire la chose la plus simple avec GIMP Script-Fu, et il me manque quelque chose de basique.GIMP script-fu (schéma) copier/coller d'une image à l'autre
J'ai créé une image grise 100x100 et une image noire 200x200, et j'essaie de copier le carré gris sur le carré noir. La sortie est cependant juste un carré noir (pas de carré gris à trouver). Ceci est un test-type minimal de quelque chose de plus impliqué que j'essaie de faire (impliquant 2 images séparées), mais je vais aborder un problème à la fois. Basé sur mon propre dépannage, il semble que le problème pourrait être dans l'étape de copier/coller, mais malheureusement, je ne comprends pas très bien la documentation pour (gimp-edit-copy) et (gimp-edit-coller) dans le navigateur de procédure Script-Fu.
Où est-ce que je me suis trompé?
Merci
; 1) save this file as `$HOME/.gimp-2.8/scripts/copy-test.scm'
; 2) $ gimp -i -b '(copy-test)' -b '(gimp-quit 0)'
; 3) check `out.png' for result
(define (copy-test)
(let* (; create 100x100 image img-a & 200x200 image img-b
(img-a (car (gimp-image-new 100 100 RGB)))
(img-b (car (gimp-image-new 200 200 RGB)))
; make new layers for each image
(layer-a0
(car (gimp-layer-new
img-a 100 100 RGB-IMAGE "a0" 100 NORMAL-MODE)))
(layer-b0
(car (gimp-layer-new
img-b 200 200 RGB-IMAGE "b0" 100 NORMAL-MODE))))
; insert layers into appropriate images
(gimp-image-insert-layer img-a layer-a0 0 0)
(gimp-image-insert-layer img-b layer-b0 0 0)
(let (; get the drawables for each image
(draw-a (car (gimp-image-get-active-layer img-a)))
(draw-b (car (gimp-image-get-active-layer img-b))))
; change img-a from black to gray
(plug-in-exchange
RUN-NONINTERACTIVE img-a draw-a 0 0 0 128 128 128 1 1 1)
; copy/paste a (100px gray) onto b (200px black)
(gimp-edit-copy draw-a)
(gimp-edit-paste draw-b TRUE)
; save output to result.png
(gimp-file-save
RUN-NONINTERACTIVE img-b draw-b "out.png" "out.png"))))
MISE À JOUR:
la suggestion de xenoid, remplaçant
(gimp-edit-paste draw-b TRUE)
avec
(gimp-floating-sel-anchor
(car (gimp-edit-paste draw-b TRUE)))
résolu le problème.
Merci! Depuis '(gimp-edit-coller)' renvoie la nouvelle sélection flottante, je l'ai remplacé '(gimp-edit-coller draw-b TRUE)' avec '(gimp-flottante-sel-ancre (voiture (gimp-édition-pâte draw-b TRUE))) ' et cela a fonctionné. Merci également pour la pointe '(gimp-display-new)', qui aide beaucoup. – msp