Je voudrais essayer la technique CSS Sprite pour charger quelques vignettes en une seule image. J'ai donc besoin de "fusionner" quelques vignettes dans un seul fichier hors connexion sur le serveur.
Supposons que j'ai 10 vignettes de la même taille. Comment suggéreriez-vous que je les "fusionne" depuis la ligne de commande Linux?
Vous pouvez également essayer ImageMagic , ce qui est excellent pour créer des sprites CSS. Quelques tutoriels à ce sujet ici .
Exemple (Sprite vertical):
convert image1.png image2.png image3.png -append result/result-Sprite.png
Exemple (Sprite horizontal):
convert image1.png image2.png image3.png +append result/result-Sprite.png
Vous pouvez également utiliser GraphicsMagick , un fork plus léger et plus rapide d’ImageMagick:
gm convert image1.png image2.png -append combined.png
Une simple comparaison temporelle de la fusion de 12 images:
time convert image{1..12}.jpg -append test.jpg
real 0m3.178s
user 0m3.850s
sys 0m0.376s
time gm convert image{1..12}.jpg -append test.jpg
real 0m1.912s
user 0m2.198s
sys 0m0.766s
GraphicsMagick est presque deux fois plus rapide que ImageMagick.
Utilisez le pnmcat
du paquet netpbm.
Vous devez probablement convertir vos fichiers d’entrée pour l’utiliser:
pnmcat -lr <(pngtopnm 1.png) <(pngtopnm 2.png) | pnmtopng > all.png
Si vous préférez fusionner les images de gauche à droite, utilisez la commande suivante:
convert image{1..0}.png +append result/result-Sprite.png
Noter la +append
au lieu de -append
.