픽셀 폰트 스프라이트를 사용하여 텍스트를 투명 배경 PNG 이미지로 변환하는 웹 도구입니다.
🤖 이 프로젝트는 GitHub Copilot (GPT-5, Claude 3.5 Sonnet)의 도움으로 제작되었습니다.
- 📝 여러 줄 텍스트 지원
- 🎨 색상 커스터마이징 (컬러 피커/HEX)
- 📏 글자 간격·공백 너비·줄 간격 조절
- 🔍 화면 배율 1~6x (픽셀 퍼펙트)
- 💾 투명 배경 PNG 다운로드
- ⌨️ 단축키
Ctrl+Enter로 생성 - 🪟 Windows XP 테마, 🖥️ Windows 98 테마
- 🔁 상단 고정 테마 전환 버튼(기본/XP/98 페이지 공통)
- 🌙 다크 모드 자동 감지 + 토글 버튼(메인 페이지, LocalStorage 저장)
| 폰트 | 높이 | 설명 |
|---|---|---|
| English Old | 18px | 클래식 픽셀 폰트 |
| Smallest Font | 5px | 초소형 비트맵 폰트 |
python -m http.server 8000
# 또는
npx http-server -p 8000브라우저에서 접속:
- 기본 테마: http://localhost:8000/
- XP 테마: http://localhost:8000/xp_theme/
- 98 테마: http://localhost:8000/98_theme/
text-image-generator/
├── index.html # 기본 테마 (상단 테마 전환 + 다크 모드 토글)
├── script.js # 기본 테마 스크립트
├── js/
│ ├── fonts.js # 폰트 설정/경로
│ ├── utils.js # 유틸리티
│ ├── loader.js # FontLoader
│ └── renderer.js # GlyphRenderer
├── xp_theme/
│ ├── index.html # XP 스타일 (xp.css, 상단 전환 버튼)
│ └── script.js # 상위 js/ 재사용, basePath('../')
├── 98_theme/
│ └── index.html # 98 스타일 (98.css, 상단 전환 버튼)
├── sprite_fonts/
│ ├── english_old/
│ │ ├── coords.json
│ │ └── english_old.png
│ └── smallest_font/
│ ├── smallest_coords.json
│ └── smallest-font.png
└── README.md
- Vanilla JavaScript(ES6 모듈)
- Canvas 2D + ImageData API (색상 틴팅)
- Fetch API
- CSS3
- 다크 모드: prefers-color-scheme + LocalStorage 토글
- XP 테마: xp.css (https://unpkg.com/xp.css)
- 98 테마: 98.css (https://unpkg.com/98.css)
- 오프스크린 캔버스로 글리프 색상 틴팅
- imageSmoothingEnabled=false로 보간 제거
- 정수 배율 스케일링, DPR 영향 제거(1:1 픽셀 매칭)
흐름: 스프라이트 로드 → 레이아웃 계산 → 색상 틴팅 → 캔버스 합성 → PNG 출력
{
"meta": { "image": "sprite.png", "imageWidth": 640, "imageHeight": 18, "charCount": 52 },
"coords": [{ "char": "A", "index": 0, "sx": 0, "sy": 0, "w": 12, "h": 18 }]
}- FontLoader(statusCallback, basePath='./')
- coords.json 및 스프라이트 로드
- XP/98 테마에서 basePath('../')로 상위 리소스 참조
- GlyphRenderer(canvas, loader)
- render(text, options), getTransparentDataURL()
- 지원 문자는 폰트 파일에 의존
- 유니코드/이모지 미지원
- 매우 긴 텍스트 성능 저하 가능
이슈/PR 환영
MIT
버전: 2.2.0
최종 업데이트: 2025-11-02
테마: 기본 + Windows XP + Windows 98
렌더링: Canvas 2D + ImageData API
AI Assisted: GitHub Copilot (GPT-5, Claude 3.5 Sonnet)