Script-Fu неправильно интерпретирует имя файла из командной строки Windows - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь открыть два изображения и вставить одно поверх другого, как его собственный слой, используя скрипт-фу. Затем мне нужно вызвать этот скрипт из командной строки (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

Опять же, он попытался загрузить изображение (пустую строку?), Но включил )'

Все, что мне нужно, это заставить его распознавать только строку в двойных кавычках.

...