Пакетное преобразование изображений в ASCII art в GIMP

1656

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

Спасибо.

0
Этот вопрос может быть лучше подходит для сайтов SuperUser или StackOverflow SE. Michael Schumacher 8 лет назад 0

1 ответ на вопрос

0
Michael Schumacher

Сценарий преобразования файлов по умолчанию, основанный на учебнике по 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, раскрывающийся диалог экспорта будет выглядеть так:

List of aalib format names

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