J'essaye de préparer un script pour le redimensionnement automatique des fichiers image. J'ai trouvé ce LINK mais je n'arrive pas à comprendre comment l'utiliser. Quelqu'un peut-il fournir un script de travail que je peux utiliser comme point de départ?redimensionner l'image en utilisant script-fu gimp
Répondre
La fonction suivante redimensionne l'image:
(define (resize-image filename-in filename-out new-width new-height)
(let* ((image (car (gimp-file-load RUN-NONINTERACTIVE filename-in "")))
(drawable (car (gimp-image-active-drawable image)))
)
(gimp-image-scale image new-width new-height)
(gimp-file-save RUN-NONINTERACTIVE image drawable filename-out "")
)
)
Maintenant, le redimensionnement tous jpg dans un répertoire:
(define (file-basename filename)
(let*
(
(broken-up (strbreakup filename "."))
(wo-last-r (cdr (reverse broken-up)))
(wo-last (reverse wo-last-r))
(result "")
)
(while wo-last
(set! result (string-append result (car wo-last)))
(set! wo-last (cdr wo-last))
(if (> (length wo-last) 0) (set! result (string-append result ".")))
)
result
)
)
(define (ex_09 file-pattern new-width new-height)
(let* ((filelist (cadr (file-glob file-pattern 1))))
(while (not (null? filelist))
(let* ((cur-file (car filelist)))
(resize-image
cur-file
(string-append (file-basename cur-file) "_resized.jpg")
100
100
)
(set! filelist (cdr filelist))
)
)
)
)
Je pense que ceci est votre réponse.
Je peux appeler ces fonctions? – Nicholas
Les codes proviennent de cette adresse. http://www.adp-gmbh.ch/misc/tools/script_fu/ex_09.html
Hors de la boîte, cela ne fonctionne pas pour moi. J'ai fait quelques changements:
Dans le fichier file_basename.scm je supprime des choses que je n'ai pas pu contourner. Donc, les fichiers sont créés redimensionnées dans le même répertoire que les fichiers d'origine:
(define (file-basename filename)
(let*
(
(broken-up (strbreakup filename "."))
(wo-last-r (cdr (reverse broken-up)))
(wo-last (reverse wo-last-r))
(car broken-up)
)
)
Dans le fichier ex_09.scm: Je viens d'utiliser la nouvelle largeur et les variables nouvelle hauteur.
(define (ex_09 file-pattern new-width new-height)
(let* ((filelist (cadr (file-glob file-pattern 1))))
(while (not (null? filelist))
(let* ((cur-file (car filelist)))
(resize-image
cur-file
(string-append (file-basename cur-file) "_resized.jpg")
new-width
new-height
)
(set! filelist (cdr filelist))
)
)
)
)
Hop ceci aide! et merci René Nyffenegger pour le code. :)
Pourquoi ne pas utiliser ImageMagick? Il est installé sur la plupart des distributions Linux, et facilement disponible pour tous les autres bons OS et Windows. 'convertir image.jpg -resize 256x200 result.jpg' –
C'est, mais je vous suggérerais certainement de l'installer en utilisant' homebrew' si vous le pouvez - ou MacPorts, bien que je n'ai pas utilisé ce dernier. –
Si vous utilisez un Mac, vous pouvez utiliser 'sips'. Tapez «sips homme» dans le terminal. –