2015-03-29 4 views
2

У меня возникла проблема с использованием режима пакетной обработки gimp. Все, что я пытаюсь сделать, - открыть 2 png-файлы в виде слоев одного изображения и сохранить их вместе как значок (.ico).Gimp patch open as layer

Проблема: Gimp просто открывает два изображения как отдельные окна, а не как два изображения в одном слое.

Мой код выглядит следующим образом:

(define (merge-to-icon filename layername endname) 
(
    let* 
    (
     (image (car (gimp-file-load RUN-NONINTERACTIVE filename filename))) 
     (drawable (car (gimp-image-get-active-layer image))) 
     (adlayer (car (gimp-file-load-layer RUN-NONINTERACTIVE image layername))) 
    ) 
    (gimp-image-insert-layer image adlayer 0 0) 
    (set! drawable (car (gimp-image-get-active-layer image))) 
    (gimp-displays-flush) 
    (gimp-file-save RUN-NONINTERACTIVE image drawable endname endname) 
)) 

ответ

3

Для не-интерактивном режиме:

(define (implode-imgs-save-ico fname-one fname-two) 
    (let* (
      ; first main image 
      (image (car (gimp-file-load RUN-NONINTERACTIVE fname-one fname-one))) 
      ; them layer 
      (drawable1 (car (gimp-image-get-active-drawable image))) 
      ; open image as layer 
      (drawable2 (car (gimp-file-load-layer RUN-NONINTERACTIVE image fname-two))) 
     ) 

     ; add layer to image 
     (gimp-image-insert-layer image drawable2 0 0) 

     ;set layer mixing mode 
     (gimp-layer-set-mode drawable2 SCREEN-MODE) 

     ; may be some resize here 

     ; merge layers 
     (set! drawable (car (gimp-image-flatten image))) 

     ; save 
     (file-ico-save RUN-NONINTERACTIVE image drawable "my.ico" "my.ico") 
    ) 
) 

Затем вызовите его:

gimp --no-interface --batch='(moo "back.png" "top.png")' -b (gimp-quit 0) 
+0

Спасибо, работал для меня! –

Смежные вопросы