Strumenti per creare sprite CSS? [chiuso]


126

Ci sono buoni strumenti per creare sprite CSS?

IDEALMENTE Vorrei dargli una directory di immagini e un file .css esistente che fa riferimento a quelle immagini e che crei un'immagine grande ottimizzata con tutte le piccole immagini E cambi il mio file .css per fare riferimento a quelle immagini.

Almeno vorrei che prendesse una directory di immagini e generasse un grande sprite e il .css necessario per usarli come sfondo.

Ci sono buoni plugin di Photoshop o app completamente funzionanti per farlo?



Potresti per favore elaborare un po 'di più, stai cercando di compilare tutti gli sprite su un'immagine più grande e quindi utilizzare CSS per visualizzare la parte dell'immagine che contiene lo sprite giusto. (tecnica delle porte scorrevoli)
teh_noob,

1
c'è un modo per cambiare il colore di sfondo in modo che io possa vedere le mie icone bianche su spritepad?
Jim,

24
Davvero non capisco perché questo è stato chiuso ?? Sembra che ci siano molte buone risposte utili. Probabilmente questa dovrebbe essere una domanda da superutente perché non menziono un particolare linguaggio di programmazione ma mi piacciono le risposte che ho ricevuto e ovviamente sono state utili a molti.
Simon_Weaver,

3
Per favore, Dio non elimini questa domanda, è l'elenco più utile su Internet per questo problema ed è sicuramente correlato alla programmazione (anche se non si tratta di una domanda di programmazione da dire) . Questo è sicuramente un appello di giudizio, e non avrebbe dovuto essere chiuso forzatamente dalle mod; ecco a cosa serve il sistema di chiusura dei voti della comunità ....
BlueRaja - Danny Pflughoeft

Risposte:


46

Questo farà per te il 90% del lavoro: CSS Sprite Generator . Dovrai comunque modificare tu stesso le regole, ma lo strumento ti fornirà i frammenti di codice necessari per il nuovo file CSS.


@ben perfetto! supponendo che funzioni ;-)
Simon_Weaver,

1
Sono un po 'insoddisfatto di questo strumento, quindi deseleziono come risposta selezionata. ha finito per ritagliare la mia immagine e non spiega molto bene perché lascia grandi spazi vuoti tra le immagini
Simon_Weaver,

Non mi piace questa soluzione, anche se immagino che funzioni bene. SpriteMe sembra funzionare molto meglio.
Chuck Le Butt,

2
il problema con questo strumento è che le immagini non sono alla massima qualità.
Jim,

50

Instant Sprite è un generatore di sprite CSS nel browser su cui sto lavorando. È davvero veloce, ma non ha abbastanza funzioni come alcune delle altre. Attualmente funziona solo in Firefox o Chrome, poiché utilizza JavaScript FileReader e HTML Canvas per generare gli sprite all'interno del browser Web senza caricamenti.


1
Caspita, che grande strumento. Grazie!
Fiume Vivian,

Ho usato il tuo strumento per lavorare su alcuni siti Web di produzione da quando hai pubblicato qui. È molto semplice e facile
Fiume Vivian,

7
+1. Il tuo strumento è molto meglio del resto che ho provato.
Ed Bayiates,

3
questo è il più intuitivo di sempre ... grazie ... (anche se dovrebbe includere il layout "intelligente" degli sprite per ridurre al minimo i problemi di prestazioni)
kumarharsh

2
Grazie a tutti! @Harsh, sono d'accordo sul layout - ho iniziato a sperimentarlo un po 'di tempo fa ma non l'ho mai fatto funzionare: github.com/bgrins/InstantSprite/tree/bin-pack
Brian Grinstead

31

Ora c'è Sprite Me di Steve Souders. Basta provarlo e sembra funzionare abbastanza bene.

Ecco il link http://spriteme.org/ ed ecco il post sul blog che lo annuncia.

http://www.stevesouders.com/blog/2009/09/14/spriteme/


2
+1 È incredibilmente facile da usare: basta andare alla pagina desiderata e fare clic sul bookmarklet SpriteMe ... Crea automaticamente immagini e CSS!
Chuck Le Butt,

È uno strumento piacevole, ma richiede un file ZIP delle tue immagini e l'ordine in cui inserisce i tuoi sprite è l'ordine ZIP. Lo strumento di Brian in basso ti consente di caricare file e trascinarli per cambiare ordine.
Ed Bayiates,

Mi piace il fatto che abbia il codice sorgente disponibile gratuitamente
lkraav il

13

Sembra promettente:

http://csssprites.org/

Inoltre ho trovato questo articolo che contiene alcune informazioni utili e anche alcuni commenti dei lettori che vale la pena leggere.

Anche apparentemente google web toolkit ha qualcosa - quindi se lo stai usando potrebbe valere la pena dare un'occhiata.


Sembra che la pagina non funzioni più ...
Bob,

smartsprites.osinski.name è stato ribattezzato csssprites.org , quindi l'ho modificato per te. Sembra essere una delle poche opzioni che possono essere integrate nel processo di compilazione, da quello che ho visto qui.
ripper234,

9

Questo è sicuramente legittimo. Le mappe degli sprint salvate IMHO sono una chiave, quindi solo le immagini e le righe di codice rilevanti dovrebbero cambiare nel tempo, invece di ricalcolare l'intero set di coordinate ad ogni modifica del contenuto dell'immagine.
lkraav,

7

ZeroSprites è un generatore di sprite CSS finalizzato alla minimizzazione delle aree mediante algoritmi di pianificazione dei piani VLSI.


6

ho trovato questo abbastanza veloce anche se il limite di upload di 500K potrebbe essere una seccatura. il codice sorgente è disponibile qui


perché il caricamento da 500kb sarebbe un problema? probabilmente non avrei mai voluto caricare> 100kb
Simon_Weaver il

Ho detto che "potrebbe" essere un dolore. Dipende dall'applicazione no? .. Un file zip pieno di PNG di medie dimensioni, ad esempio, su una griglia di dimensioni considerevoli ~ ~ potrebbe essere eseguito vicino a questo numero. se è tutto bitmap quindi sicuro / no prob.
Scott Evernden,

1
Sì, ma il punto centrale degli sprite CSS è impedire che molte piccole immagini vengano caricate con molte richieste. se tu avessi davvero tanti piccoli sprite, impiegherebbe molto tempo a caricarsi e in quel momento nessuno verrebbe visualizzato. meglio tenerli, penso al massimo 100kb. puoi sempre fare diversi
Simon_Weaver,

lavoro molto con le immagini. forse non piccole bitmap css. quindi forse è per questo che ho dato l'avvertimento. le tue esigenze sono diverse / ok. 500kb arriveranno in un secondo sulla maggior parte delle bande. sono stato il primo a fornire la risposta accettata alla tua domanda ed eccomi giù ~ votato e difendo la mia lingua? qualunque cosa ...
Scott Evernden,

È stato un dolore per me, dal momento che le immagini con cui ho iniziato finivano per essere un fascio di dimensioni maggiori di quel limite, quindi ho dovuto ritagliare o ottimizzare prima di poterlo usare.
Kzqai,


4

Non è ancora chiaro se entrerà nel framework ASP.NET di base, ma ecco un progetto codeplex di Microsoft per csssprites:

http://aspnet.codeplex.com/releases/view/50869

se ti piace, usalo o semplicemente come l'idea, aggiungi un commento. Penso che sarebbe una grande cosa avere nel framework ASP.NET. Non l'ho usato personalmente (ho dovuto inventare la ruota da solo) ma ha ottenuto buone recensioni.


Include i seguenti componenti:

  • API per la generazione automatica di sprite e immagini incorporate
  • Controlli e helper che forniscono un modo conveniente per chiamare l'API

Funzionalità aggiunte nella seconda versione:

  • Un controllo di collegamento CSS per Web Form (seleziona il file CSS corretto per il browser dell'utente, ma non visualizza un'immagine)
  • Utilizzo di percorsi di cartelle personalizzati diversi da App_Sprites
  • Modifica della direzione di affiancamento delle immagini sprite
  • Unione del CSS generato con il CSS dell'utente

Funzionalità in esame per le versioni future:

  • Selezione automatica del colore di sfondo sprite più efficiente
  • Minimizzare automaticamente il CSS renderizzato
  • Compilazione su .NET 3.5


3

Non una risposta diretta ma ai miei colleghi sviluppatori e integratori web, considera semplicemente l'allineamento di ogni sprite ai poteri di due; ad esempio una griglia di 16 pixel o 32 pixel. Rende molto più semplice il calcolo degli offset nel file CSS. Tutto lo spazio bianco tra non importa poiché i formati gifd e png lo comprimono molto bene.


buon consiglio, anche se sto principalmente cercando di combinare le intestazioni di testo (1-2kb ciascuna) in un singolo file. non sono troppo preoccupato per lo spazio bianco perché so che verrà compresso - non capisco completamente perché gli strumenti per rendere gli sprite ne fanno così tanto
Simon_Weaver

Un avvertimento a questo: mentre lo spazio bianco nell'immagine verrà compresso per il trasporto, viene espanso e occupa memoria quando viene caricato il browser. L'uso cieco degli strumenti di generazione automatica degli sprite può portare ad alcune immagini enormi, che possono aumentare l'uso della memoria in quelle pagine. È necessario prestare attenzione nel raggruppare le immagini per formare fogli di sprite per mantenerlo entro limiti ragionevoli.
Sam Foster,

Sam: vero! L'ho scoperto dopo. Se l'immagine dello sprite è molto ampia o alta è qualcosa da considerare! Soprattutto per le app di telefonia mobile (meno memoria). Simone: lo spazio bianco è probabilmente a causa delle limitazioni dei CSS. Anche quando non si utilizza la ripetizione su uno sfondo, l'immagine dello sprite verrà mostrata attraverso il riempimento, l'altezza della linea e praticamente tutta l'area di sfondo dell'elemento tranne i margini e i bordi. Supponiamo ad esempio di avere un'icona per un collegamento. Se il collegamento si estendesse su più righe, potrebbero essere visualizzate altre icone dello sprite. L'aggiunta di abbastanza spazio bianco lo rende più "resistente".

@Simon_Weaver - Sulla base del feedback di tutti quanti qui, ho postato uno strumento sprite che è semplice stackoverflow.com/a/13281578/1162141
Technosaurus


2

Se ti piace Java, puoi usare GWT 1.5+ che viene fornito con qualcosa chiamato " ImageBundle ". Il compilatore GWT gestirà tutti i dettagli cattivi per te. Non dovrai nemmeno codificare una singola riga di JavaScript o scrivere CSS.




2

Esiste un nuovo strumento là fuori chiamato ActiveSprites, parte della gemma active_assets.

Github: http://bitly.com/eRTwU4

Usi un ruby ​​dsl per definire i tuoi sprite e poi fai "rake sprite" e gli sprite e i corrispondenti fogli di stile vengono generati.

È rad!

Ecco un po 'di codice di esempio,

# config/sprites.rb
Rails.application.sprites do
  sprite 'sprites/sprite1.png' => 'sprites/sprite1.css' do
    _'sprite_images/sprite1/1.png' => 'a.one'
    _'sprite_images/sprite1/2.png' => 'span.two'
  end
end

2

https://github.com/northpoint/SpeedySprite

Questo strumento adotta un nuovo approccio in quanto assembla le immagini richieste al volo come servizio http. Questo rende l'intero processo piuttosto semplice (non è richiesta la preelaborazione, si cambiano le immagini in qualsiasi momento): si avvia il servizio e quindi si fa riferimento a qualsiasi immagine desiderata nel proprio HTML:

<link href="css/my-images-dir/" rel="stylesheet">
<div class="my-image-name-here" />

Poiché è dinamico, puoi persino creare sprite da una serie dinamica di immagini come una pagina di anteprima. Tuttavia, non supporta JPEG, ma PNG e GIF funzionano bene.


1

Ti suggerisco di usare Sprite Master Web . Genero fogli di sprite automaticamente ed esporta il codice CSS per te. Cerca sempre di generare fogli sprite più piccoli con algoritmi avanzati.

Ecco uno screenshot e un video di YouTube

inserisci qui la descrizione dell'immagine


Vale la pena notare che questa non è un'app gratuita o open source ma a prezzi ragionevoli a $ 3,99. È ben costruito e offre una buona compressione PNG.
t.mikael.d,

Solo Mac. Peccato, questo sembrava promettente.
Mahn,

1

Nessuno di questi strumenti ha soddisfatto i miei requisiti, quindi ne ho scritto uno che utilizza la minuscola libreria di immagini di Mark Tylers, mtpixel (ora parte di mtcelledit ) Non è super esteso ma è facilmente estendibile attraverso le funzioni integrate di mtpixel che includono: scala di grigi, inversione di colore , rotazione, nitidezza, quantizzazione, posterizzazione, rotazione (verticale e orizzontale), trasformazione, rgb-> indicizzato, indicizzato-> rgb, rilevamento dei bordi, rilievo, disegno di poligoni, testo e altro.

Tutto quello che fai è passargli un set di immagini come args (supporta png, gif e jpeg) e produrrà un pg rgb chiamato sprite.png insieme all'utile immagine che taglia i dati su stdout. Lo uso negli script bash per velocizzare un'intera directory di immagini e generare i dati di slicing per la generazione automatica di CSS (con la speranza di renderlo in grado di sostituire automagicamente i tag img esistenti con un po 'di sed / awk creativo)

I pacchetti binari per Puppy Linux saranno qui:

http://murga-linux.com/puppy/viewtopic.php?t=82009

Il mio caso d'uso richiedeva solo di collegare le immagini verticalmente in un nuovo png, quindi è tutto ciò che fa, ma il mio codice sorgente è di dominio pubblico e la libreria mtcelledit è gpl3. Con mtpixel collegato staticamente, il binario è <100kb (solo pochi kb quando collegato dinamicamente) e le uniche altre dipendenze sono libpng, libjpeg e libgif (e il tipo di file con il mtpixel ufficiale, ma non avevo bisogno del supporto del testo, quindi ho commentato i bit di freetype nella build statica)

sentiti libero di modificare per le tue esigenze:

#include <stdlib.h> 
#include <stdio.h> 
#include <string.h> 
#include <mtpixel.h> 

int main( int argc, char *argv[] ){ 
int i=0,height=0,width=0,y=0; 
mtpixel_init(); 
mtImage *imglist[argc]; 
argc--; 
do{   imglist[i] = mtpixel_image_load( argv[i+1] ); 
   height+=imglist[i]->height; 
   if (imglist[i]->width > width) width=imglist[i]->width; 
} while (++i < argc); 
imglist[argc]=mtpixel_image_new_rgb(width,height); 
imglist[argc]->palette.trans=0; 
i=0; 
do{   if (imglist[i]->type == MTPIXEL_IMAGE_INDEXED) 
      mtpixel_image_paste(imglist[argc],mtpixel_image_to_rgb(imglist[i]),mtpixel_brush_new(),0 ,y); 
   else mtpixel_image_paste(imglist[argc],imglist[i],mtpixel_brush_new(),0 ,y); 
   printf("name=%s;width=%d;height=%d;y_offset=%d\n",argv[i+1],imglist[i]->height,imglist[i]->width,y); 
   y+=imglist[i]->height; 
   mtpixel_image_destroy( imglist[i] ); 
}while (++i < argc); 
   mtpixel_image_save( imglist[argc], "sprite.png", MTPIXEL_FILE_TYPE_PNG, 5 ); 
mtpixel_quit(); 
return 0; 
}

0

Se si utilizza .net, consultare http://www.RequestReduce.com . Non solo crea automaticamente il file sprite, ma lo fa al volo attraverso un HttpModule insieme a unire e minimizzare tutti i CSS. Ottimizza anche l'immagine dello sprite utilizzando la quantizzazione e la compressione senza perdita di dati e gestisce la pubblicazione dei file generati utilizzando le etichette ETags e Expires per garantire una cache ottimale del browser. L'installazione è banale e comporta solo una semplice modifica di web.config. Vedi il mio post sul blog sulla sua adozione da parte della Galleria di esempi di Microsoft Visual Studio e MSDN.


0

ho recentemente trovato questi strumenti: SpriteRight http://spriterightapp.com/

SpriteRight è un generatore di fogli elettronici CSS per Mac che ti consente di importare immagini o fogli di stile esistenti. Fai caricare i tuoi siti più velocemente, riduci i costi della larghezza di banda e risparmia tempo. SpriteRight genera anche il codice CSS al volo.


Vale la pena notare che questa non è un'app gratuita o open source ma a prezzi ragionevoli a $ 4,99. È ben costruito e offre una buona compressione PNG, più funzionalità rispetto al precedente "Sprite Master Web".
t.mikael.d,

Ed è anche mac.
Mahn,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.