2017-08-23 7 views
1

私はGIMP Script-Fuでもっとも簡単なことをしようとしています。GIMPスクリプト-fu(スキーム)1つのイメージから別のイメージへコピー/貼り付け

私は100x100の灰色の画像と200x200の黒い画像を作成しました。黒い四角に灰色の四角形をコピーしようとしています。ただし、出力は黒い正方形(灰色の四角形は見つかりません)です。これは私がやろうとしている(2つの別々の画像を含む)何かのものの最小限のテストケースですが、私は一度に1つの問題に取り組みます。

私自身のトラブルシューティングに基づいて、コピー/貼り付けの手順に問題があるようですが、残念ながら(gimp-edit-copy)と(gimp-edit-paste)のドキュメントを理解できません。 Script-Fuプロシージャブラウザ。私が間違っている

おかげ

; 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")))) 

UPDATE:

(gimp-floating-sel-anchor 
    (car (gimp-edit-paste draw-b TRUE))) 

(gimp-edit-paste draw-b TRUE) 

を交換xenoidの提案に続き

は、問題を修正しました。

答えて

1

gimp-edit-pasteは浮動選択(ある種の一時的なレイヤー)を作成しますが、浮動選択を「アンカー」するまではdraw-bを変更しません(gimp-floating-sel-anchor)。次に、gimp-file-saveは画像全体ではなくレイヤーを保存するだけなので、ファイルにはペーストは含まれません。

スクリプトで画像を作成するときには、少なくとも表示中の画像(gimp-display-new)に関連付けると便利です(少なくともデバッグ中)。

+0

ありがとうございました!以来 '、私は置き換え(GIMP-編集ペースト)'新しい浮動選択を返し '(GIMP-編集ペーストTRUEドロー-B)' '(GIMP-浮動SEL-アンカーと (車(gimp-edit-paste draw-b TRUE))) ' となっていました。 '(gimp-display-new)'ヒントもありがとうございました。 – msp

関連する問題