47 votes

Utilisation de Gimp pour convertir par lots des images dans un autre format sous Windows

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 ?

55voto

eleven81 Points 14460

Mieux que Gimp ou Irfanview est ImageMagick .

Par exemple, essayez :

mogrify -format jpg *.png

6voto

Un assistant de traitement par lots est également disponible :

DBP (David's Batch Processor) pour GIMP

enter image description here

6voto

Arthur Points 1521

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

4voto

Daniel Points 44

L'utilisation de Irfanview n'est pas une option ? Je garde GIMP et Irfanview installés précisément pour cette raison... GIMP pour l'édition d'images et Irfanview pour la conversion par lots.

2voto

tresf Points 201

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".

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X