Comme le titre l'indique, quelqu'un sait-il comment utiliser le programme gimp-console-[version].exe pour convertir par lots des images d'un format à l'autre (avec les paramètres par défaut) sous Windows ?
Réponses
Trop de publicités?Un assistant de traitement par lots est également disponible :
DBP (David's Batch Processor) pour GIMP
Inscrire les éléments suivants ~/.gimp-<YOURVERSION>/scripts/myconvert.scm
:
(define (myconvert in_filename out_filename)
(let* (
(image (car (gimp-file-load RUN-NONINTERACTIVE in_filename in_filename)))
(drawable (car (gimp-image-get-active-layer image)))
)
(gimp-file-save RUN-NONINTERACTIVE image drawable out_filename out_filename)
(gimp-image-delete image)
)
)
Ensuite, vous pouvez exécuter quelque chose comme ceci pour convertir tous les fichiers du répertoire actuel en JPG :
for A in * ; do gimp -i -b "(myconvert \"$A\" \"$A.jpg\")" -b '(gimp-quit 0)' ; done
Quelqu'un sait-il comment utiliser le programme gimp-console-[version].exe pour convertir par lots des images d'un format à l'autre (avec les paramètres par défaut) sous Windows ?
En gimp-console-[version].exe
utilise un langage appelé "schéma" pour l'interprétation des commandes. Les scripts se terminent souvent par le caractère .scm
extension.
Il est difficile d'attribuer la console en raison des nuances avec les citations, comme on peut l'observer. aquí mais c'est possible.
Voici un exemple qui convertit tous les .svg
dans le répertoire actuel à .png
en utilisant le traitement par lots. Il recherchera également l'exécutable Gimp dans le registre et calculera le chemin d'accès à la version en ligne de commande.
@echo off
set resolution=72
set width=400
set height=600
REM Find Gimp in the registry
for /f "tokens=2*" %%a in ('reg query "HKCR\GIMP2.svg\shell\open\command" /ve 2^>^&1^|find "REG_"') do @set gimp=%%b
REM Calculate console exe
set gimp=%gimp:gimp-=gimp-console-%
REM Isolate exe
for %%i in (%gimp%) do (
@set gimp=%%i
goto :found
)
:found
echo Found Gimp console: %gimp%
REM Process files (change to "for /r %%i" for recursion)
for %%i in (*.svg) do (
echo - Converting [ %%i --^> %%~ni.png ] ^(%width%x%height%@%resolution%^)
%gimp% -i -b "(let* ((image (car (file-svg-load RUN-NONINTERACTIVE \"%%i\" \"\" 72 (- 0 400) (- 0 600) 0))) (drawable (car (gimp-image-get-active-layer image)))) (plug-in-autocrop RUN-NONINTERACTIVE image drawable) (gimp-file-save RUN-NONINTERACTIVE image drawable \"%%~ni.png\" \"%%~ni.png\") (gimp-image-delete image))" -b "(gimp-quit 0)"
)
Cette ligne de commande finale peut être adoptée sur d'autres plates-formes en utilisant des guillemets simples autour de l'ensemble de la commande scheme et en utilisant des guillemets doubles à l'intérieur. Testé sur Gimp 2.10.18, 2.10.14.
Cette réponse utilise un code extrait d'un .scm
à partir d'un article archivé sur le web Matthew Gates 2014 intitulé "Gimp SVG to Raster script".
- Réponses précédentes
- Plus de réponses