Un générateur de multi-drawstat à partir d'une image. L'un des plus optimisés à ce jour.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

readme.md 2.0KB

Sprite Optimizer

Le Sprite Optimizer est un outil permettant de générer le code Multi DrawStat optimisé d’une image. La sortie est destinée à être copiée-collée dans un éditeur de programmes. Merci à Zezombye et Breizh pour l’idée originale.

La solution est optimisée et peut ne pas être optimale. En pratique, elle est très souvent utilisable telle quelle.

L’algorithme a une complexité quadratique : au delà de 150 pixels à traiter, l’exécution peut être très lente.

Options d’utilisation

Par défaut, le code est généré pour un origine (0, 0) en haut à gauche, ce qui correspond au ViewWindow 0, 126, 0, 62, 0, 0.

Inversion du ViewWindow

Pour inverser le ViewWindow et avoir une origine (0, 0) en bas à gauche, utilisez l’option --flip. Correspond au ViewWindow 0, 126, 0, 0, 62, 0.

Il est possible d’utiliser cette option en même temps que --offset.

Décalage du ViewWindow

Pour décaler l’origine du ViewWindow et avoir une origine (a, b) dans un coin, utiliser l’option --offset a, b. Correspond au ViewWindow a, 126+a, 0, 62+b, b, 0.

Il est possible d’utiliser cette option en même temps que --flip.

Affichage des statistiques et de la progression

Utilisez les options --info et --progress.

Export visuel du résulat

Pour exporter le résultat visuellement, utilisez les options --show pour afficher l’image et --draw pour l’enregistrer dans un fichier <nom>_gen.png. Cela permet de vérifier l’optimisation effectuée par l’outil.

Installation

Installez Python 3 ainsi que les dépendances citées dans le fichier requirements.txt.

Exemples d’utilisation

# Affiche le code uniquement
./sprite-optimizer image.png

# Affiche la progression, des infos (lignes, temps d'exécution), et le code
./sprite-optimizer -pi image.png

# Retourne le code de l'image pour un ViewWindow inversé (origine en bas à gauche)
./sprite-optimizer --flip image.png

# Retourne le code avec un offset de (10, 5)
./sprite-optmizer --offset 10 5 image.png