Я пытаюсь открыть два изображения и вставить одно поверх другого как собственный слой, используя скрипт-фу. Затем мне нужно вызвать этот скрипт из командной строки (Windows), передав два имени файла.
Вот мой код .scm:
(define (open-as-layer file1 file2)
(let* (
; first main image
(image (car (gimp-file-load RUN-NONINTERACTIVE file1 file1)))
; them layer
(draw1 (car (gimp-image-get-active-drawable image)))
; open image as layer
(draw2 (car (gimp-file-load-layer RUN-NONINTERACTIVE image file2)))
)
; add layer to image
(gimp-image-insert-layer image draw2 0 0)
)
)
Когда я использовал эту команду:
gimp-2.10 -d -b '(open-as-layer "C:\Users\me\Desktop\testoriginal.pgm" "C:\Users\me\Desktop\testfinished.pgm")'
Gimp открывает и загружает первое изображение нормально, но выдает эту ошибку при загрузке второго:
Opening 'C:\Users\me\Desktop\testfinished.pgm)'' failed: Error opening file C:\Users\me\Desktop\testfinished.pgm)': No such file or directory
Ошибка показывает, что имя файла C:\Users\me\Desktop\testfinished.pgm)'
, обратите внимание, что )'
включено. Поэтому я попытался добавить пробел после полного имени файла в команде:
gimp-2.10 -d -b '(open-as-layer "C:\Users\me\Desktop\testoriginal.pgm" "C:\Users\me\Desktop\testfinished.pgm" )'
И gimp теперь загружает оба изображения в отдельные вкладки, но пытается загрузить третье изображение и терпит неудачу с этой ошибкой:
Opening 'C:\Program Files\GIMP 2\bin\)'' failed: Error opening file C:\Program Files\GIMP 2\bin\)': No such file or directory
Опять же, он попытался загрузить изображение (пустая строка?), но включил )'
Все, что мне нужно, это заставить его распознавать только строку в двойных кавычках.
gimp-2.10 -d -b "(open-as-layer \"C:/Users/me/Desktop/testoriginal.pgm\" \"C:/Users/me/Desktop/testfinished.pgm\" )"
(если вы просто не хотите использовать двойные двойные кавычки). Вы также можете упростить себе жизнь, используя косую черту в именах файлов (это нормально работает в Windows). - person xenoid   schedule 08.01.2019