CSS sprite oluşturma araçları? [kapalı]


126

Css sprite oluşturmak için iyi araçlar var mı?

İDEAL OLARAK ona bir görüntü dizini ve bu görüntülere atıfta bulunan ve tüm küçük görüntülerle optimize edilmiş büyük bir görüntü oluşturmasını sağlayan mevcut bir .css dosyası vermek VE .css dosyamı bu görüntülere başvuracak şekilde değiştirmek isterdim.

En azından bir resim dizini alıp büyük bir hareketli grafik ve her birini arka plan olarak kullanmak için gerekli .css oluşturmasını istiyorum.

Bunu yapmak için iyi bir photoshop eklentisi veya tamamen gelişmiş uygulamalar var mı?



Lütfen biraz daha detaylandırır mısınız, tüm sprite'ları daha büyük bir resim üzerinde derlemeye mi çalışıyorsunuz ve sonra resmin doğru sprite içeren kısmını görüntülemek için css kullanıyor musunuz? (sürgülü kapılar tekniği)
teh_noob

1
Beyaz simgelerimi spritepad'de görebilmek için arka plan rengini değiştirmenin bir yolu var mı?
Jim

24
Bunun neden kapandığını gerçekten anlamıyorum? Pek çok yararlı cevap var gibi görünüyor. Bu tartışmalı bir Süper kullanıcı sorusu olmalı çünkü belirli bir programlama dilinden bahsetmiyorum ama aldığım cevapları seviyorum ve açıkçası birçokları için faydalı oldular.
Simon_Weaver

3
Lütfen bu soruyu silmeyin, bu sorun için internetteki en yararlı listedir ve kesinlikle programlamayla ilgilidir (her söylenen bir programlama sorusu olmasa bile) . Bu kesinlikle bir yargı çağrı olduğunu ve gerektiği değil mods tarafından zorla kapalı olmuştur; topluluk oylama kapatma sistemi bunun için ...
BlueRaja - Danny Pflughoeft

Yanıtlar:


46

Bu sizin için işin% 90'ını yapacak: CSS Sprite Generator . Yine de kuralları kendiniz düzenlemeniz gerekecek, ancak araç size yeni CSS dosyası için ihtiyacınız olan kod parçalarını verecektir.


@ben mükemmel! işe yaradığını varsayarsak ;-)
Simon_Weaver

1
Bu araçtan biraz memnun değilim, bu yüzden onu seçtiğim yanıt olarak seçmedim. görüntümü kırpmaya başladı ve neden görüntüler arasında büyük boşluklar bıraktığını pek iyi açıklamıyor
Simon_Weaver

Bu çözümü beğenmedim, ancak iyi çalıştığını tahmin ediyorum. SpriteMe çok daha iyi çalışıyor gibi görünüyor.
Chuck Le Butt

2
bu araçla ilgili sorun, görüntülerin tam kalitede olmamasıdır.
Jim

50

Instant Sprite , üzerinde çalıştığım bir tarayıcı içi CSS hareketli grafik oluşturucu. Gerçekten hızlı, ancak bazıları kadar çok özelliğe sahip değil. Web tarayıcısı içinde sprite yüklemeleri olmadan oluşturmak için JavaScript FileReader ve HTML Canvas kullandığından, şu anda yalnızca Firefox veya Chrome'da çalışmaktadır.


1
Vay canına, ne harika bir araç. Teşekkürler!
Vivian River

Burada yayınladığınızdan beri aracınızı bazı üretim web sitelerinde çalışmak için kullandım. Çok basit ve kolaydır.
Vivian River

7
+1. Aletiniz denediğim diğerlerinden çok daha iyi.
Ed Bayiates

3
bu şimdiye
kadarki

2
Herkese teşekkürler! @Harsh, düzen konusunda aynı fikirdeyim - bununla uzun bir süre önce denemeye başladım ama hiç çalışmadım: github.com/bgrins/InstantSprite/tree/bin-pack
Brian Grinstead

31

Şimdi Steve Souders'ın Sprite Me yazarı var. Sadece deniyor ve oldukça iyi çalışıyor gibi görünüyor.

İşte bağlantı http://spriteme.org/ ve işte bunu duyuran blog yazısı.

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


2
+1 Bunun kullanımı inanılmaz derecede kolaydır: İstediğiniz sayfaya gidin ve SpriteMe yer imini tıklayın ... Resimleri ve CSS'yi otomatik olarak oluşturur!
Chuck Le Butt

Güzel bir araçtır, ancak resimlerinizin bir ZIP dosyasını gerektirir ve sprite'larınızı yerleştirme sırası ZIP sırasıdır. Brian'ın aşağıdaki aracı, dosyaları yüklemenize ve sırayı değiştirmek için sürükleyip bırakmanıza olanak tanır.
Ed Bayiates

Kaynak kodunun ücretsiz olarak kullanılabilmesi
hoşuma gidiyor

13

Bu umut verici görünüyor:

http://csssprites.org/

Ayrıca bazı yararlı bilgiler ve hatta okumaya değer bazı okuyucu yorumlarını içeren bu makaleyi buldum .

Ayrıca görünüşe göre google web araç setinde bir şeyler var - bu yüzden onu kullanıyorsanız, kontrol etmeye değer olabilir.


Görünüşe göre sayfa artık çalışmıyor ...
Bob

smartsprites.osinski.name değiştirildi csssprites.org senin için düzenlenmiş yüzden. Burada gördüğümden, inşa sürecine entegre edilebilecek birkaç seçenekten biri gibi görünüyor.
ripper234

9

Bu kesinlikle meşru. Kaydedilmiş spritemaps IMHO bir anahtardır, bu nedenle her görüntü içeriği değişikliğinde tüm koordinat kümesini yeniden hesaplamak yerine, yalnızca ilgili görüntülerin ve kod satırlarının zaman içinde değişmesi gerekir.
lkraav


6

bunu oldukça hızlı buldum, çünkü 500K yükleme sınırı bir sorun olabilir. kaynak kodu burada mevcuttur


500 kb yükleme neden sıkıntı olur? muhtemelen asla 100kb'den fazla yüklemek istemezdim
Simon_Weaver

Acı 'olabilir' dedim. Bu sorta, uygulamaya bağlı değil mi? .. Orta boy PNG'lerle dolu bir zip dosyası, örneğin oldukça büyük bir ızgara üzerinde bu sayıya yakın çalışabilir. tüm küçük bit eşlemler varsa o zaman emin / sorun yok.
Scott Evernden

1
ya ama css sprite'ların amacı, çok sayıda küçük görüntünün birçok istekle yüklenmesini engellemektir. Eğer gerçekten bu kadar çok küçük sprite sahip olsaydınız, hiçbirinin görüntülenmeyeceği şekilde yüklenmesi uzun zaman alırdı. onları saklamak için en iyisi en fazla 100kb olarak düşünürdüm. her zaman birkaç tane yapabilirsin
Simon_Weaver

resimlerle çok iş yapıyorum. belki küçük css bit eşlemleri değil. belki de bu yüzden ihtar verdim. ihtiyaçlarınız farklı / tamam. 500 kb, çoğu geniş bantta bir saniyede ulaşır. Sorgunuza kabul edilen cevabı ilk ben verdim ve işte reddeyim ~ oyumu ve dilimi savunuyorum? her neyse ...
Scott Evernden

Bu benim için bir acıydı, çünkü başladığım görüntüler bu sınırdan daha büyük boyutta bir paket haline geldi, bu yüzden kullanmadan önce kesip çıkarmak zorunda kaldım.
Kzqai


4

Çekirdek ASP.NET çerçevesine girip girmeyeceği henüz belli değil, ancak işte csssprites için bir Microsoft kodepleks projesi:

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

Eğer beğenirseniz - kullanın - veya sadece fikir gibi, sonra bir yorum ekleyin. Bunun ASP.NET çerçevesinde olması harika bir şey olacağını düşünüyorum. Kişisel olarak kullanmadım (tekerleği kendim icat etmek zorunda kaldım) ama iyi değerlendirmeleri var.


Aşağıdaki bileşenleri içerir:

  • Otomatik olarak hareketli görüntüler ve satır içi görüntüler oluşturmak için API
  • API'ye çağrı yapmanın uygun bir yolunu sağlayan kontroller ve yardımcılar

İkinci Sürümde Eklenen Özellikler:

  • Web Formları için bir CSS bağlama denetimi (kullanıcının tarayıcısı için uygun CSS dosyasını seçer, ancak bir resmi görüntülemez)
  • App_Sprites dışında özel klasör yolları kullanma
  • Hareketli görüntülerin döşeme yönünü değiştirme
  • Oluşturulan CSS'yi bir kullanıcının kendi CSS'si ile birleştirme

Gelecekteki sürümler için dikkate alınan özellikler:

  • En verimli hareketli arka plan rengini otomatik olarak seçme
  • Oluşturulan CSS'yi otomatik olarak küçültme
  • .NET 3.5'e karşı derleme


3

Doğrudan bir yanıt değil, geliştirici arkadaşlarıma ve web entegratörleri için, her sprite'ı ikinin gücüne hizalamayı düşünün; örneğin 16 piksel veya 32 piksel ızgara. CSS dosyasındaki ofsetleri hesaplamayı çok daha kolay hale getirir. Gifd ve png formatları bunu çok iyi sıkıştırdığı için aradaki tüm beyaz boşluk önemli değildir.


iyi bir ipucu, ancak esas olarak metin başlıklarını (her biri 1-2kb) tek bir dosyada birleştirmeye çalışıyorum. Beyaz alan hakkında fazla endişelenmiyorum çünkü sıkıştırılacağını biliyorum - sadece sprite yapmak için araçların neden bu kadar çok şey yaptığını tam olarak anlamıyorum
Simon_Weaver

Buna bir uyarı - görüntüdeki beyaz boşluk aktarım için sıkıştırılırken, genişletilir ve tarayıcı yüklendiğinde belleği kaplar. Otomatik hareketli grafik oluşturma araçlarının kör kullanımı, bu sayfalarda bellek kullanımını artırabilecek bazı büyük görüntülere yol açabilir. Makul sınırlar içinde tutmak için hareketli grafik sayfaları oluşturmak üzere görüntüleri gruplarken biraz özen gösterilmesi gerekir.
Sam Foster

Sam: Doğru! Bunu daha sonra buldum. Sprite resmi çok geniş veya uzunsa, bu dikkate alınması gereken bir şeydir! Özellikle cep telefonu uygulamaları için (daha az bellek). Simon: Beyaz boşluk muhtemelen CSS'nin sınırlamalarından kaynaklanıyor. Bir arka planda yinelemesiz kullansanız bile, hareketli görüntü; dolgu, satır yüksekliği ve temelde kenar boşlukları ve kenarlıklar dışında tüm öğenin arka plan alanıyla gösterilir. Örneğin, bir bağlantı için bir simgeniz olduğunu varsayalım. Bağlantı birden fazla satıra yayılırsa, hareketli grafiğin diğer simgeleri görünebilir. Yeterli boşluk eklemek, bunu daha "esnek" hale getirir.

@Simon_Weaver - Buradaki herkesin geri bildirimlerine dayanarak, basit stackoverflow.com/a/13281578/1162141
technosaurus


2

Java'yı seviyorsanız, " ImageBundle " adlı bir şeyle birlikte gelen GWT 1.5+ kullanabilirsiniz . GWT derleyicisi sizin için tüm kötü ayrıntıları ele alacaktır. Tek bir JavaScript satırı kodlamanız veya herhangi bir CSS yazmanız bile gerekmez.




2

ActiveSprites adında, active_assets geminin bir parçası olan yeni bir araç var.

Github: http://bitly.com/eRTwU4

Sprite'larınızı tanımlamak için bir ruby ​​dsl kullanırsınız ve ardından "sprite rake" yaparsınız ve sprite'lar ve karşılık gelen stil sayfaları oluşturulur.

Radikal!

İşte bazı örnek kodlar,

# 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

Bu araç, istediğiniz görüntüleri anında bir http hizmeti olarak bir araya getirerek yeni bir yaklaşım benimser. Bu, tüm süreci oldukça basitleştirir (önişleme gerekmez, görüntüleri istediğiniz zaman değiştirin): Hizmeti başlatırsınız ve ardından HTML'nizde istediğiniz görüntülere referans verirsiniz:

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

Dinamik olduğu için, küçük resim sayfası gibi dinamik bir görüntü kümesinden bile sprite oluşturabilirsiniz. Yine de JPEG'i desteklemiyor, ancak PNG ve GIF iyi çalışıyor.


1

Sprite Master Web'i kullanmanızı öneririm . Otomatik olarak hareketli grafik sayfaları oluşturuyorum ve sizin için CSS kodunu dışa aktarıyorum. Her zaman gelişmiş algoritmalarla en küçük hareketli grafik sayfaları oluşturmaya çalışır.

İşte bir ekran görüntüsü ve youtube videosu

görüntü açıklamasını buraya girin


Kayda değer, bu ücretsiz veya açık kaynaklı bir uygulama değil, ancak 3,99 $ fiyatıyla oldukça uygun. İyi oluşturulmuş ve iyi PNG sıkıştırması yapıyor.
t.mikael.d

Yalnızca Mac. Bummer, bu umut verici görünüyordu.
Mahn

1

Bu araçlardan hiçbiri gereksinimlerimi karşılamadı, bu yüzden Mark Tylers'ın küçük resim kitaplığını kullanan bir tane yazdım, mtpixel (şimdi mtcelledit'in bir parçası ) Çok kapsamlı değil, ancak mtpixel'in aşağıdakileri içeren yerleşik işlevleriyle kolayca genişletilebilir: gri tonlama, rengi ters çevirme , döndürme, keskinleştirme, niceleme, posterleştirme, çevirme (dikey ve yatay), dönüştürme, rgb-> dizinli, dizinli-> rgb, kenar algılama, kabartma, çizim çokgenleri, metin ve daha fazlası.

Yapmanız gereken tek şey ona bir dizi görüntüyü bağımsız değişken olarak iletmektir (png, gif ve jpeg'yi destekler) ve stdout'a kullanışlı görüntü dilimleme verileriyle birlikte sprite.png adlı bir rgb png çıktılar. Tüm bir görüntü dizini spritify ve otomatik css üretimi için dilimleme verilerini çıktı olarak bash betiklerinde kullanıyorum (sonunda mevcut img etiketlerini otomatik olarak biraz yaratıcı sed / awk ile değiştirebilme umuduyla)

Yavru linux için ikili paketler burada olacak:

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

Benim kullanım durumum sadece görüntüleri dikey olarak yeni bir png'ye eklemeyi gerektirdi, tüm yaptığı bu, ancak kaynak kodum kamuya açık ve mtcelledit kitaplığı gpl3. Mtpixel statik olarak bağlandığında, ikili <100kb'dir (dinamik olarak bağlandığında yalnızca birkaç kb'dir) ve diğer bağımlılıklar yalnızca libpng, libjpeg ve libgif'tir (ve resmi mtpiksel ile freetype, ancak metin desteğine ihtiyacım yoktu, bu yüzden statik yapıda freetype bitlerini yorumladı)

kendi ihtiyaçlarınız için değişiklik yapmaktan çekinmeyin:

#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

.Net kullanıyorsanız, http://www.RequestReduce.com adresine bakın . Yalnızca sprite dosyasını otomatik olarak oluşturmakla kalmaz, aynı zamanda tüm CSS'yi birleştirip küçülterek bir HttpModule aracılığıyla anında yapar. Ayrıca, sprite görüntüsünü niceleme ve kayıpsız sıkıştırmayı kullanarak optimize eder ve optimum tarayıcı önbelleği sağlamak için ETag'leri ve Expires başlıklarını kullanarak oluşturulan dosyaların sunumunu gerçekleştirir. Kurulum, basit bir web.config değişikliğini içeren önemsizdir. Microsoft Visual Studio ve MSDN Örnekleri galerisi tarafından benimsenmesi hakkındaki blog gönderime bakın .


0

Yakın zamanda bu araçları buldum: SpriteRight http://spriterightapp.com/

SpriteRight, Mac için mevcut görüntülerinizi veya stil sayfalarınızı içe aktarmanıza izin veren bir CSS model sayfası oluşturucusudur. Sitelerinizin daha hızlı yüklenmesini sağlayın, bant genişliği maliyetlerini azaltın ve zamandan tasarruf edin. SpriteRight, anında CSS kodu üretir.


Dikkat çekmeye değer, bu ücretsiz veya açık kaynaklı bir uygulama değil, ancak 4,99 $ fiyatıyla oldukça uygun. İyi oluşturulmuştur ve iyi PNG sıkıştırması yapar, yukarıdaki "Sprite Master Web" den daha fazla işlevsellik sağlar.
t.mikael.d

Ve sadece Mac de var.
Mahn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.