CSS 스프라이트를 만드는 도구? [닫은]


126

CSS 스프라이트를 만드는 좋은 도구가 있습니까?

이상적으로 이미지 디렉토리와 해당 이미지를 참조하는 기존 .css 파일을 제공하고 모든 작은 이미지로 최적화 된 큰 이미지를 만들고 해당 이미지를 참조하도록 내 .css 파일을 변경하고 싶습니다.

적어도 이미지 디렉토리를 가져 와서 큰 스프라이트와 각각을 배경으로 사용하는 데 필요한 .css를 생성하고 싶습니다.

이 작업을 수행하기 위해 좋은 포토샵 플러그인이나 완전히 날린 앱이 있습니까?



좀 더 자세히 설명해 주시겠습니까? 하나의 큰 이미지에서 모든 스프라이트를 컴파일 한 다음 CSS를 사용하여 올바른 스프라이트가 포함 된 이미지의 일부를 표시하려고하십니까? (미닫이 문 기술)
teh_noob

1
스프라이트 패드에서 흰색 아이콘을 볼 수 있도록 배경색을 변경하는 방법이 있습니까?
Jim

24
나는 이것이 왜 닫혔는지 이해하지 못한다? 유용한 답변이 많이있는 것 같습니다. 나는 특정 프로그래밍 언어를 언급하지 않았지만 내가 얻은 답변을 좋아하고 많은 사람들에게 분명히 유용했기 때문에 이것은 수퍼 유저 질문이어야합니다.
Simon_Weaver

3
이 질문을 삭제하지 마십시오.이 문제에 대해 인터넷에서 가장 유용한 목록이며 프로그래밍과 관련이 있습니다 (프로그래밍 질문이 아니더라도) . 이것은 분명히 판단 요청이며 , 개조에 의해 강제 폐쇄 되어서는 안됩니다 . 그것이 커뮤니티 투표 결산 시스템입니다 ....
BlueRaja-Danny Pflughoeft

답변:


46

이것은 CSS Sprite Generator 의 작업 중 90 %를 수행합니다 . 여전히 규칙을 직접 편집해야하지만 도구는 새 CSS 파일에 필요한 코드 조각을 제공합니다.


@ 벤 완벽 해! 작동한다고 가정 ;-)
Simon_Weaver

1
나는이 도구에 약간 불만족하므로 선택한 답변으로 unchose합니다. 이미지를 자르게되었고 왜 이미지 사이에 큰 차이가 생기는지를 잘 설명하지
못합니다.

이 솔루션이 마음에 들지 않지만 제대로 작동한다고 생각합니다. SpriteMe가 훨씬 잘 작동하는 것 같습니다.
Chuck Le Butt

2
이 도구의 문제점은 이미지의 품질이 좋지 않다는 것입니다.
Jim

50

인스턴트 스프라이트 는 내가 작업중 인 브라우저 내 CSS 스프라이트 생성기입니다. 정말 빠르지 만 다른 기능만큼 많은 기능이 없습니다. JavaScript FileReader 및 HTML Canvas를 사용하여 업로드하지 않고 웹 브라우저 내에 스프라이트를 생성하기 때문에 현재 Firefox 또는 Chrome에서만 작동합니다.


1
와, 정말 좋은 도구입니다. 감사!
Vivian River

여기에 게시 한 이후 도구를 사용하여 일부 프로덕션 웹 사이트에서 작업했습니다. 매우 간단하고 쉽습니다.
Vivian River

7
+1. 귀하의 도구는 내가 시도한 나머지 도구보다 훨씬 낫습니다.
Ed Bayiates 22

3
이것은 가장 직관적 인 것입니다 ... 감사합니다 ... (성능 문제를 최소화하기 위해 스프라이트의 "스마트 한"레이아웃을 포함해야합니다)
kumarharsh

2
모두 감사합니다! @Harsh, 나는 레이아웃에 동의한다-나는 꽤 오래 전에 실험을 시작했지만 결코 작동하지 않았다 : github.com/bgrins/InstantSprite/tree/bin-pack
Brian Grinstead

31

Steve Souders의 Sprite Me가 있습니다. 그냥 시도해 보면 꽤 잘 작동하는 것 같습니다.

여기 링크 http://spriteme.org/가 있으며 여기에이를 알리는 블로그 게시물이 있습니다.

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


2
+1 사용이 매우 쉽습니다. 원하는 페이지로 이동하여 SpriteMe 북마크를 클릭하면 이미지와 CSS가 자동으로 생성됩니다!
Chuck Le Butt

좋은 도구이지만 이미지의 ZIP 파일이 필요하고 스프라이트를 넣는 순서는 ZIP 순서입니다. 아래 Brian의 도구를 사용하면 파일을 업로드하고 드래그 앤 드롭하여 순서를 변경할 수 있습니다.
Ed Bayiates

소스 코드를 자유롭게 사용할 수 있습니다.
lkraav

13

이것은 유망 해 보입니다.

http://csssprites.org/

또한 유용한 정보가있는 이 기사 와 읽을만한 가치가있는 독자 의견이 있습니다.

또한 분명히 구글 웹 툴킷에는 무언가가 있습니다. 따라서 그것을 사용하고 있다면 체크 아웃 할 가치가 있습니다.


페이지가 더 이상 작동하지 않는 것 같습니다 ...
Bob

smartsprites.osinski.namecsssprites.org 로 이름이 변경 되었으므로 편집했습니다. 내가 본 것에서 빌드 프로세스에 통합 할 수있는 몇 가지 옵션 중 하나 인 것 같습니다.
ripper234

9

이것은 확실히 합법적입니다. 저장된 스프라이트 맵 IMHO는 핵심이므로 모든 이미지 내용이 변경 될 때마다 전체 좌표 세트를 다시 계산하는 대신 관련 이미지와 코드 줄만 시간이 지남에 따라 변경되어야합니다.
lkraav

7

ZeroSprites 는 VLSI 평면도 알고리즘을 사용하여 영역 최소화를 목표로하는 CSS 스프라이트 생성기입니다.


6

꽤 빨리이 일을 발견 하는 50 만 업로드 제한이 통증이있을 수도 있습니다 그래도. 소스 코드는 여기에 있습니다


500kb 업로드가 왜 고통 스러울까요? 아마 100kb 이상을 업로드하고 싶지 않을 것입니다.
Simon_Weaver 9:09에

나는 그것이 고통일지도 모른다고 말했다. 그것은 응용 프로그램에 따라 다릅니다. .. 예를 들어 크기 조정 가능한 그리드에서 ~~ could ~까지이 크기에 가까운 중간 크기 PNG로 가득 찬 zip 파일. 모든 작은 비트 맵이면 확실하고 문제가 없습니다.
Scott Evernden

1
그러나 CSS 스프라이트의 요점은 많은 요청으로 많은 작은 이미지가로드되는 것을 방지하는 것입니다. 작은 스프라이트가 많으면 아무 것도 표시되지 않는 데로드하는 데 시간이 오래 걸립니다. 최대 100kb로 생각합니다. 당신은 항상 여러 가지를 할 수 있습니다
Simon_Weaver

나는 이미지로 많은 일을한다. 아마도 작은 CSS 비트 맵이 아닐 수도 있습니다. 어쩌면 그게 내가 경고를 한 이유입니다. 당신의 요구는 다릅니다 / 괜찮습니다. 500kb는 대부분의 광대역에서 1 초 안에 도착할 것입니다. 나는 당신의 질문에 처음으로 받아 들여진 대답을 제공했고 여기에서 나는 투표를 거부하고 내 언어를 변호하고 있습니까? 무엇이든 ...
스콧 Evernden

내가 시작한 이미지가 그 크기보다 큰 번들이되었으므로 사용하기 전에 잘라내거나 최적화해야했기 때문에 고통 스러웠습니다.
Kzqai


4

핵심 ASP.NET 프레임 워크로 만들지 아직 확실하지 않지만 csssprites에 대한 Microsoft 코드 플렉스 프로젝트는 다음과 같습니다.

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

당신이 그것을 좋아한다면-그것을 사용하거나-아이디어를 좋아한다면 의견을 추가하십시오. 이것이 ASP.NET 프레임 워크에있는 좋은 일이라고 생각합니다. 개인적으로 그것을 사용하지는 않았지만 (나는 바퀴를 직접 발명해야 했음) 좋은 평가를 받았습니다.


다음과 같은 구성 요소가 포함됩니다.

  • 스프라이트 및 인라인 이미지 자동 생성을위한 API
  • 편리한 API 호출 방법을 제공하는 컨트롤 및 도우미

두 번째 릴리스에 추가 된 기능 :

  • Web Forms에 대한 CSS 연결 제어 (사용자 브라우저에 적합한 CSS 파일을 선택하지만 이미지는 표시하지 않음)
  • App_Sprites 이외의 사용자 정의 폴더 경로 사용
  • 스프라이트 이미지의 타일링 방향 변경
  • 생성 된 CSS를 사용자 자신의 CSS와 병합

향후 릴리스에서 고려중인 기능 :

  • 가장 효율적인 스프라이트 배경색 자동 선택
  • 렌더링 된 CSS 자동 축소
  • .NET 3.5에 대한 컴파일

4

http://sprites.scherpontwikkeling.nl/ 을 사용 하면 웹 사이트 URL에서 스프라이트를 생성 할 수 있습니다 ... 웹 사이트를 개발 한 후 스프라이트를 통합 할 수 있습니다. 사용하기 매우 쉽습니다.)


3

직접적인 대답이 아니라 동료 개발자와 웹 통합 자에게 각 스프라이트를 2의 거듭 제곱에 맞추는 것을 고려하십시오. 예를 들어 16 픽셀 또는 32 픽셀 그리드. CSS 파일에서 오프셋을 훨씬 쉽게 계산할 수 있습니다. gifd 및 png 형식이 압축률을 높이기 때문에 사이의 모든 공백은 중요하지 않습니다.


좋은 팁이지만 주로 텍스트 헤더 (각 1-2KB)를 단일 파일로 결합하려고합니다. 압축 될 것이라는 것을 알기 때문에 공백에 대해 너무 걱정하지 않습니다. 스프라이트를 만드는 도구가 왜 그렇게 많은지 이해하지 못합니다
Simon_Weaver

한 가지주의 사항-이미지의 공백은 전송을 위해 압축되지만 브라우저가로드 될 때 확장되어 메모리를 차지합니다. 자동 스프라이트 생성 도구를 맹목적으로 사용하면 이미지가 커져서 해당 페이지의 메모리 사용량이 급증 할 수 있습니다. 스프라이트 시트를 형성하기 위해 이미지를 그룹화 할 때는 약간의주의가 필요합니다.
Sam Foster

샘 : 맞아! 나중에 이것을 발견했습니다. 스프라이트 이미지가 매우 넓거나 크다면 고려해야 할 사항입니다! 특히 휴대 전화 앱 (메모리 부족)의 경우. 사이먼 : 공백은 아마도 CSS의 한계 때문일 것입니다. 배경에 반복 없음을 사용하더라도 스프라이트 이미지는 패딩, 선 높이 및 기본적으로 여백과 테두리를 제외한 모든 요소의 배경 영역을 통해 표시됩니다. 예를 들어 링크 아이콘이 있다고 가정하십시오. 링크가 여러 줄에 걸쳐 있으면 스프라이트의 다른 아이콘이 표시 될 수 있습니다. 충분한 공백을 추가하면 이것이 "탄력적"이됩니다.

@Simon_Weaver-여기에 모든 사람의 의견을 바탕으로 간단한 stackoverflow.com/a/13281578/1162141 인
technosaurus


2

Java를 좋아한다면 " ImageBundle "과 함께 제공되는 GWT 1.5 이상을 사용할 수 있습니다 . GWT 컴파일러는 모든 불쾌한 세부 사항을 처리합니다. 한 줄의 JavaScript를 코딩하거나 CSS를 작성할 필요조차 없습니다.




2

active_assets gem의 일부인 ActiveSprites라는 새로운 도구가 있습니다.

Github : http://bitly.com/eRTwU4

루비 dsl을 사용하여 스프라이트를 정의한 다음 "레이크 스프라이트"를 수행하면 스프라이트와 해당 스타일 시트가 생성됩니다.

라드!

샘플 코드는 다음과 같습니다.

# 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

이 도구는 요청한 이미지를 http 서비스로 즉석에서 조립한다는 점에서 새로운 접근 방식을 취합니다. 이렇게하면 전체 프로세스가 매우 간단 해집니다 (사전 처리가 필요하지 않고 언제든지 이미지를 변경). 서비스를 시작한 다음 HTML에서 원하는 이미지를 참조하십시오.

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

동적이기 때문에 썸네일 페이지와 같은 동적 이미지 세트에서 스프라이트를 만들 수도 있습니다. JPEG는 지원하지 않지만 PNG와 GIF는 제대로 작동합니다.


1

Sprite Master Web 을 사용하는 것이 좋습니다 . 스프라이트 시트를 자동으로 생성하고 CSS 코드를 내 보냅니다. 항상 고급 알고리즘으로 가장 작은 스프라이트 시트를 생성하려고 시도합니다.

다음은 스크린 샷과 YouTube 비디오입니다

여기에 이미지 설명을 입력하십시오


주목할만한 것은이 앱은 무료 또는 오픈 소스 앱이 아니지만 가격은 $ 3.99입니다. 잘 구축되어 있으며 PNG 압축이 우수합니다.
t.mikael.d

맥만. Bummer, 이것은 유망한 것으로 보였다.
Mahn

1

이러한 도구 중 어느 것도 내 요구 사항을 충족 하지 못했기 때문에 Mark Tylers의 작은 이미지 라이브러리 인 mtpixel (현재 mtcelledit의 일부 ) 을 사용하는 도구를 작성 했습니다. 매우 광범위하지는 않지만 mtpixel의 내장 기능을 통해 쉽게 확장 할 수 있습니다. , 회전, 선명하게, 양자화, 포스터 화, 뒤집기 (수직 및 수평), 변환, RGB-> 색인, 색인-> rgb, 가장자리 감지, 엠 보스, 다각형 그리기, 텍스트 등.

이미지 세트를 args (png, gif 및 jpeg 지원)로 전달하면 유용한 이미지 슬라이싱 데이터와 함께 sprite.png라는 rgb png를 stdout에 출력합니다. 나는 bash 스크립트에서 그것을 사용하여 이미지의 전체 디렉토리를 spritify하고 CSS 자동 생성을 위해 슬라이싱 데이터를 출력합니다 (결국 기존 img 태그를 약간의 독창적 인 sed / awk로 자동으로 대체 할 수 있기를 희망 함)

강아지 리눅스 용 바이너리 패키지는 다음과 같습니다.

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

내 유스 케이스는 이미지를 새 png에 세로로 스 플라이 싱하기 만하면되었으므로 소스 코드는 퍼블릭 도메인이고 mtcelledit 라이브러리는 gpl3입니다. mtpixel가 정적으로 링크 된 상태에서 이진 파일은 <100kb (동적으로 링크 된 경우 몇 kb 만)이고 다른 유일한 종속성은 libpng, libjpeg 및 libgif (공식 mtpixel을 사용한 프리 타입)이지만 텍스트 지원이 필요하지 않습니다. 정적 빌드에서 프리 타입 비트를 주석 처리했습니다)

자신의 필요에 따라 자유롭게 수정하십시오.

#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을 사용하는 경우 http://www.RequestReduce.com을 확인 하십시오 . 스프라이트 파일을 자동으로 생성 할뿐만 아니라 모든 CSS를 병합 및 축소하는 동시에 HttpModule을 통해 즉시 생성합니다. 또한 양자화 및 무손실 압축을 사용하여 스프라이트 이미지를 최적화하고 ETag 및 Expires 헤더를 사용하여 생성 된 파일의 서비스를 처리하여 최적의 브라우저 캐싱을 보장합니다. 간단한 web.config 변경만으로 설정이 간단합니다. Microsoft Visual Studio 및 MSDN 샘플 갤러리의 채택에 대한 내 블로그 게시물을 참조하십시오 .


0

나는 최근 에이 도구를 찾습니다 : SpriteRight http://spriterightapp.com/

SpriteRight는 기존 이미지 또는 스타일 시트를 가져올 수있는 Mac 용 CSS 스프라이트 시트 생성기입니다. 사이트로드 속도를 높이고 대역폭 비용을 줄이며 시간을 절약하십시오. SpriteRight는 CSS 코드를 즉시 생성합니다.


주목할만한 것은이 앱은 무료 또는 오픈 소스 앱이 아니지만 가격은 4.99 달러입니다. 그것은 잘 구축되고 좋은 PNG 압축, 위의 "Sprite Master Web"보다 더 많은 기능을 수행합니다.
t.mikael.d

그리고 그것은 맥뿐입니다.
Mahn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.