Este tutorial está bem detalhado, faça um teste seguindo passo-a-passo, e logo estará apto à aplicar em qualquer site!

1) Faça o download (http://smartsprites.osinski.name/download.html) da ferramenta SmartSprites, descompacte em um diretório qualquer (aqui estou usando o meu diretório padrão de projetos, que é c:\gonow\developer).

2) Vamos fazer a marcação do css, necessária para a ferramenta se identificar. Fazemos isso usando comentários.

O sprite é composto por várias imagens, unidas em uma só e exibidas pelo posicionamento do bg de cada elemento;

Para criar um sprite automaticamente devemos criar instruções para o SmartSprites entender que imagem pertence ao sprite x;

Criamos referência ao primeiro Sprite, usando o seguinte código dentro do css:

/**
sprite: mysprite;
sprite-image: url('../img/mysprite.png');
sprite-layout: vertical
*/

ou ainda:

/**sprite: mysprite; sprite-image: url('../img/mysprite.png'); sprite-layout: vertical */

-Explicando esse código temos:

sprite // nome do sprite, será usado futuramente para referenciar cada imagem que compõe o sprite;

sprite-image // nome e caminho da imagem que será gerada pelo programa;
sprite-layout // orientação da imagem (vertical | horizontal);

Obs: deve vir antes de qualquer referência a este sprite, mas não precisa estar no topo do css.

Existem ainda outras opções, recomendo o acesso ao site, e pesquisas na internet para conhece-las mais a fundo, já existe bastante coisa a respeito na internet, e no fim deste post vou mencionar alguns links.

Após criar a regra do primeiro sprite, já podemos começar a definir que fará parte dele, para isso vamos atribuir na frente da propriedade background-image um outro comentário, como este:

background-image:url(../img/xpto.png); /** sprite-ref: mysprite; repeat; sprite-margin-top: 5px */

Explicando esse código temos:

background-image:url(../img/xpto.png); // propriedade obrigatória, indica qual imagem será incluida no sprite;

e nos comentários:

sprite-ref: mysprite; //Nome usado anteriormente na instancia, diz que essa imagem deve estar no sprite mysprite;
repeat; //Avisa que permite repetição, então deve-se estender a imagem na direção da repetição (x = horizontal | y = vertical)
sprite-margin-top: 5px // distância em relação a outras imagens;

Esse comentário deve estar presente em todas as regras de css que contenham imagens de bg para o sprite, mas, em nenhum dos casos, a propriedade background poderá ser usada de forma abreviada para funcionar, em um exemplo prático, o código abaixo:

background: transparent url("../img/center_bg.png") no-repeat center top;

irá virar:

background-color: transparent;
background-image: url("../img/center_bg.png") ;
background-repeat:no-repeat;
background-position:center top;

sendo que o background-repeat se tornou descartável e o background-position será gerado pela ferramenta, então podemos reduzir ainda para:

background-color: transparent;
background-image: url("../img/center_bg.png") ;

e aplicando as intruções para o smartSprite:

background-color: transparent;

background-image: url("../img/center_bg.png") ;/** sprite-ref: mysprite; */

Finalizada esta explicação, segue um exemplo de código real, antes da formatação:

#logo{
    background:url("../img/logo.png") no-repeat top left;
    width:180px;
    height:57px;
    left: 28px;
    position: absolute;
    top: 40px;

}
 
#center {
    background: transparent url("../img/center_bg.png") no-repeat center top;
    padding-top: 10px;
    position: relative;

}
 
#left #leftContent {
    position: relative;
    overflow: auto;
    background: transparent url("../img/homeContentBg.png") repeat-x center bottom;
    width: 284px;

}

E agora, após configurado para o smartSprites:

#logo{
    background-image:url("../img/logo.png");/** sprite-ref: mysprite; */
    width:180px;
    height:57px;
    left: 28px;
    position: absolute;
    top: 40px;

}
 
#center {
    background-image: transparent url("../img/center_bg.png");/** sprite-ref: mysprite; */
    padding-top: 10px;
    position: relative;

}
 
#left #leftContent {
    position: relative;
    overflow: auto;
    background-image: url("../img/homeContentBg.png");/** sprite-ref: mysprite; */

    width: 284px;
}

Usei a forma mais simples para mostrar como pode se relacionar uma imagem atual à uma imagem de sprite, você pode aplicar diversas outras configurações, como alinhamento, margem, etc;

3) Após concluir a aplicação dos comentários no css temos que fazer com que a ferramenta processe o que foi pedido, para isso, acessamos via prompt de comando o diretório onde descompactamos o smartSprites (C:\gonow\developer\smartsprites) e digitamos a seguinte linha:

smartsprites --root-dir-path c:/example

Onde c:/example é o diretório raiz do projeto, onde o css esteja visível;

4) Se chegou até aqui, o prompt terá exibido uma tela com várias [INFOS], então você ja gerou seus sprites.
Vá até a pasta definida para os sprites no primeiro comentário, veja sua nova imagem, vá até a pasta de css e veja seu novo css ja configurado com as positions do sprite, e altere o html do seu site para chamar o novo css. Faça um preview e tire suas conclusões.

Observações

- O programa já vem com um diretório contendo vários exemplos, é interessante executá-los para ver o resultado final.
- Acesse o faq: http://smartsprites.osinski.name/#faq

Links Externos

- http://smartsprites.osinski.name/
- http://framebox.blogspot.com/2009/01/implementando-css-sprites-com.html
Share and Enjoy:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • NewsVine
  • Print
  • Rec6
  • Reddit
  • StumbleUpon
  • Technorati
  • TwitThis