Batch-Konvertierung von Bildern in ASCII-Art in GIMP

1749

Ich möchte ein Photoset von .png-Bildern mit dem ASCII-Kunstgenerator von GIMP in .txt-Dateien konvertieren. Ich kann dies einzeln tun, indem ich einfach das Bild als TXT-Format exportiere, aber ich kann kein Batch-Plugin finden, das die Option zum Speichern in einer TXT-Datei enthält.

Vielen Dank.

0
Diese Frage eignet sich möglicherweise besser für die SuperUser- oder StackOverflow SE-Sites. Michael Schumacher vor 8 Jahren 0

1 Antwort auf die Frage

0
Michael Schumacher

Ein Standard-Dateikonvertierungsskript, das auf dem GIMP Basic Batch-Lernprogramm basiert, könnte folgendermaßen aussehen:

(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)) ) ) ) 

Sie nennen es beispielsweise in der Script-Fu Console von GIMP :

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

Wenn Sie es von der Kommandozeile aus aufrufen möchten, können Sie je nach Plattform die richtigen Anführungszeichen und das richtige Format für das Muster ermitteln. Beachten Sie, dass die Ausgabedateien * .jpg.tif heißen

Dies wird für viele Bilddateiformate recht gut funktionieren, da gimp-file-save in der Lage ist, das Format zu ermitteln, in das die Dateierweiterung exportiert werden soll

Dies wird für andere fehlschlagen - insbesondere für diejenigen, die beim Export einige Benutzereingaben erfordern und keine Annahmen für Standardwerte treffen, wenn dies nicht angegeben ist. Das ASCII-Art-Plug-In gehört zu letzteren.

Also müssen wir in der Lage sein, diese zusätzliche Eingabe wie folgt bereitzustellen:

(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)) ) ) ) 

Und das nennen Sie zum Beispiel so:

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

Die Formatnamen werden von der aalib-Bibliothek definiert, die zum Konvertieren der Bilder in ASCII-Art verwendet wird, und sind etwas komisch. Sie können sie sehen, indem Sie ein Bild in eine * .txt-Datei exportieren. Die Dropdown-Liste des Exportdialogfelds sieht folgendermaßen aus:

List of aalib format names

Ja, wenn Sie dieses Exportformat verwenden möchten, müssen Sie wirklich "Für das Catten mit einem IRC-Kanal II" verwenden.