Un générateur de multi-drawstat à partir d'une image. L'un des plus optimisés à ce jour.
Go to file
Darks 885d7c4cce Small refactor when displaying progress info 2023-06-01 17:21:13 +02:00
.gitignore First commit, enjoy! 2018-08-18 19:34:41 +02:00
licence.txt Ajout des dépendances, d'un readme 2018-08-19 13:22:01 +02:00
readme.md Mise à jour de 'readme.md' 2023-06-01 16:03:17 +02:00
requirements.txt Ajout des dépendances, d'un readme 2018-08-19 13:22:01 +02:00
sprite-optimizer.py Small refactor when displaying progress info 2023-06-01 17:21:13 +02:00

readme.md

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 (avec pip par exemple).

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