Я хочу преобразовать фотоснимок изображений .png в файлы .txt с помощью художественного генератора GIMP ASCII. Я могу сделать это по отдельности, просто экспортируя изображение в формате .txt, но я не могу найти пакетный плагин, который включает в себя возможность сохранить в файл .txt.

Спасибо.

1 ответ1

0

Сценарий преобразования файлов по умолчанию, основанный на учебнике по GIMP Basic Batch, может выглядеть следующим образом:

(define (script-fu-batch-convert pattern extension)
  (let* ((filelist (cadr (file-glob pattern 1))))
    (while (not (null? filelist))
           (let* ((filename (car filelist))
                  (image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
                  (drawable (car (gimp-image-get-active-layer image)))
          (outfile (string-append filename extension)))
         (gimp-message outfile)
             (gimp-file-save RUN-NONINTERACTIVE image drawable outfile outfile)
             (gimp-image-delete image))
           (set! filelist (cdr filelist))
    )
  )
)

Вы называете это следующим образом, например, в консоли Script-Fu GIMP:

(script-fu-batch-convert "/home/johndoe/Pictures/GIMP/tests/*.jpg" ".tif")

Если вы хотите вызвать его из командной строки, то, в зависимости от платформы, выяснение правильных кавычек и формата шаблона может доставить вам больше или меньше хлопот. Обратите внимание, что выходные файлы будут называться * .jpg.tif

Это будет работать достаточно хорошо для многих форматов файлов изображений, так как gimp-file-save сможет выяснить, в какой формат экспортировать файлы из расширения файла.

Это не удастся для других, в частности для тех, которые требуют некоторого пользовательского ввода при экспорте, и не делают предположений для значений по умолчанию, если это не предусмотрено. Плагин ASCII-art относится к числу последних.

Итак, мы должны быть в состоянии предоставить этот дополнительный вклад, как показано ниже:

(define (script-fu-batch-convert-aa pattern format extension)
  (let* ((filelist (cadr (file-glob pattern 1))))
    (while (not (null? filelist))
           (let* ((filename (car filelist))
                  (image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
                  (drawable (car (gimp-image-get-active-layer image)))
          (outfile (string-append filename extension)))
         (gimp-message outfile)
             (file-aa-save RUN-NONINTERACTIVE image drawable outfile outfile format)
             (gimp-image-delete image))
           (set! filelist (cdr filelist))
    )
  )
)

И вы называете это так, например:

(script-fu-batch-convert-aa "/home/johndoe/Pictures/GIMP/tests/*.jpg" "Text file" ".txt")

Имена форматов определяются библиотекой aalib, используемой для преобразования изображений в ASCII-графику, и немного странны. Вы можете увидеть их, экспортировав изображение в файл * .txt, раскрывающийся диалог экспорта будет выглядеть так:

Список имен в формате aalib

Да, вам действительно нужно будет использовать «Для подключения к IRC-каналу II», если вы хотите использовать этот формат экспорта.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .