Android – Convertir un SVG en PNG

SVG et Android

Lorsqu’on développe une application Android, on est amené à utiliser plusieurs fois la même image avec des tailles différentes pour chacune des tailles de smartphones (mdpi, hdpi, xhdpi et xxhdpi). Depuis l’API 21, Android 5.0, il est possible de définir les images au format vectoriel. Toutefois, si vous voulez une application utilisable avant l’API 21 le vectoriel n’est pas accessible nativement.

Pour transformer un beau SVG en plein de PNG aux bons formats, j’ai d’abord utilisé l’interface graphique de Inkscape une fois.

La seconde fois, j’ai codé un petit .bat qui le fait pour moi. Non pas que Inkscape n’est pas bien, mais simplement parce qu’un script peut le faire plus vite que moi. Ce code fait des appels successifs à Inkscape pour transformer un SVG et 4 PNG.

Le script

N’hésitez pas à me faire des retours si vous le modifiez d’une façon ou d’une autre.

@echo off
set INKSCAPE_EXE="C:\Inkscape\inkscape.exe"

echo
set /p svgFile="Nom du fichier (sans extension) ? "

IF NOT EXIST %svgFile%.svg (
echo Le fichier %svgFile%.svg n'existe pas
pause
exit
)

echo --------------------------------------
echo Generation mdpi (32x32)...
%INKSCAPE_EXE% -f %svgFile%.svg -e %svgFile%_mdpi.png -h 32 -w 32
echo Generation hdpi (48x48)...
%INKSCAPE_EXE% -f %svgFile%.svg -e %svgFile%_hdpi.png -h 48 -w 48
echo Generation xhdpi (64x64)...
%INKSCAPE_EXE% -f %svgFile%.svg -e %svgFile%_xhdpi.png -h 64 -w 64
echo Generation xxhdpi (96x96)...
%INKSCAPE_EXE% -f %svgFile%.svg -e %svgFile%_xxhdpi.png -h 96 -w 96
echo --------------------------------------
echo Generation finie
echo --------------------------------------
pause

Tagués avec : , ,
Publié dans Android

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*