Aller au contenu

Comment réunir des images en feuille de sprites PNG et exporter le CSS

Le générateur dessine les images sélectionnées sur un PNG transparent et écrit le CSS qui replace chaque image à l’écran avec background-position. Le canevas compose la feuille, JSZip prépare l’archive, et tout se passe dans la page : rien n’est téléversé.

Chaque cellule adopte la largeur et la hauteur de l’image la plus grande de la sélection, et chaque image est centrée dans sa cellule. Les règles gardent la taille propre de chaque image : une icône de 16 × 16 et une bande de 64 × 4 partagent une même feuille sans être redimensionnées.

  1. Ajoutez jusqu’à 50 images avec le sélecteur de fichiers ou en les déposant dans la zone de dépôt. Chaque ligne affiche le nom et la taille ; les flèches réordonnent la liste et le bouton supprimer retire un fichier.
  2. Choisissez la disposition : Grille, Une seule rangée ou Colonne unique. Colonnes s’applique à la grille et accepte 1 à 20.
  3. Réglez l’espacement (0–128 px) — la place gardée dans le canevas autour et entre les cellules — puis le préfixe de classe des sélecteurs générés.
  4. Cliquez sur Générer un sprite. Le panneau indique le nombre de fichiers, les dimensions de la feuille, la taille du PNG et le nombre de règles CSS, et l’aperçu affiche la feuille obtenue.
  5. Copier CSS place la feuille de styles dans le presse-papiers ; Télécharger PNG + CSS enregistre voritools-css-sprite.zip avec voritools-sprite.png et voritools-sprite.css ; Effacer vide la liste, les options et les exports ensemble.

Disposition, noms de classes et limites du canevas

Ce que contient la feuille de styles exportée

Le fichier s’ouvre sur une classe de base — .sprite-<préfixe> avec display: inline-block, background-image: url("voritools-sprite.png") et background-repeat: no-repeat — puis une règle par image : .<préfixe>-<nom> avec sa largeur, sa hauteur et la background-position négative dans la feuille.

Le préfixe et les noms de fichiers subissent la même normalisation : minuscules, suites d’autres caractères remplacées par un tiret, tirets de début et de fin supprimés. my icon.png devient my-icon, un nom répété reçoit -2 puis -3, et un préfixe qui ne laisse rien revient à icon pour que la classe de base et les règles concordent.

Limites appliquées par la page

Une exécution accepte au plus 50 fichiers et 250 Mo, et le canevas ne doit pas dépasser 16384 pixels par côté ni 32 000 000 de pixels au total. Une feuille plus grande s’arrête sur « Le canevas généré est trop volumineux pour un traitement fiable par le navigateur. » et n’exporte rien.

Le 51e fichier n’est pas écarté en silence : la ligne d’état indique combien de fichiers dépassent la limite et la liste conserve les 50 premiers. Colonnes et Espacement sont arrondis au pixel entier avant usage — 2,5 devient 3 colonnes — et le champ affiche la valeur appliquée.

Où le travail se fait, et ce qui est accepté

Tout se passe dans le navigateur. Ajouter des images, générer, copier le CSS, télécharger le ZIP et vider la liste n’ont déclenché aucune requête réseau lors de l’essai (en, fr, ja) après le chargement de la page, et les images ne quittent pas l’appareil.

La feuille est dessinée par le décodeur du navigateur : les PNG, JPEG et SVG se chargent comme partout ailleurs, et un fichier tronqué ou vide est refusé avec « Ce navigateur ne peut pas décoder ce format de fichier. » Un SVG sans attributs width et height est dessiné à la taille par défaut du navigateur, 300 × 150.

Outils récents :