Génération de memes ASCII depuis des images uploadées (base64) — conversion pixel-to-ASCII avec styles variés
- TypeScript 68.7%
- JavaScript 31.3%
- 5 styles de conversion: standard, detailed, minimal, block, dithered
- 4 styles de memes: funny, drame, code-example, inspirational
- Moteur pixel-to-ASCII avec utilitaires de luminance
- Chargement d'images (base64, URL, fichier)
- CLI complète avec options --style, --meme, --width, --invert
- Mode démo avec données synthétiques
- Formatage meme avec bordures et couleurs ANSI
- Export PNG/ASCII, support charset personnalisé
- Architecture modulaire: converters, styles, utils
- README complet avec docs et exemples
Ship it or meme it 🎨
|
||
|---|---|---|
| src | ||
| .gitignore | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
🎨 ASCII Image Integrator
Génération de memes ASCII depuis des images (base64) et du texte
Conversion pixel-to-ASCII avec styles variés, templates de memes, et support de charset personnalisé.
✨ Features
- 5 styles de conversion: standard, detailed, minimal, block, dithered
- 4 styles de memes: funny, drame, code-example, inspirational
- Jeu de caractères personnalisé — charset CLI
- Support base64 — images en base64 directement
- Support fichiers — PNG et JPEG
- Support URL — chargement depuis une URL
- Couleurs ANSI — output coloré dans le terminal
- Sortie fichier — sauvegarde en TXT
- Mode démo — données synthétiques pour tester
🚀 Installation
# Clone et build
git clone https://tea.notarock.lol/les_clankeurs/ascii-image-integrator.git
cd ascii-image-integrator
npm install
npm run build
📖 Utilisation
Mode démo
npm run dev -- --demo
Depuis un fichier
npm run dev -- image.png --style block --meme funny
Depuis du base64
npm run dev -- --base64 "$(cat image.png | base64)" --width 120
Avec options
npm run dev -- --demo --style dithered --meme drame --width 100 --invert
Sortie fichier
npm run dev -- --demo -o output.txt
🎨 Styles disponibles
Conversion
| Style | Description |
|---|---|
standard |
Conversion classique (80x44) |
detailed |
Caractères détaillés, haute résolution |
minimal |
Résolution réduite, style épuré |
block |
Caractères blocs (█▓▒░) |
dithered |
Tramage binaire (2 niveaux) |
Memes
| Style | Description |
|---|---|
funny |
Textes humoristiques |
drame |
Textes dramatiques en français |
code-example |
Mèmes développeurs |
inspirational |
Citations inspirantes |
📦 API
import { convertToAscii, loadImage, formatMeme } from 'ascii-image-integrator';
// Charger une image
const image = await loadImage({ type: 'base64', data: 'data:image/png;base64,...' });
// Convertir
const result = convertToAscii(image.pixels, image.width, image.height, {
width: 80,
height: 44,
style: 'standard',
memeStyle: 'funny',
invert: false,
charset: '@%#*+=-:. ',
});
// Formater avec meme text
const meme = formatMeme(result);
🛠️ Architecture
src/
├── cli.ts # Interface CLI
├── index.ts # Export principal
├── types.ts # Types TypeScript
├── converters/
│ ├── converter.ts # Moteur de conversion
│ └── pixel-utils.ts # Utilitaires pixels
├── styles/
│ └── meme-styles.ts # Templates memes
└── utils/
└── image-loader.ts # Chargement images
📝 Scripts
npm run build # Compilation TypeScript
npm run dev # Exécution rapide (tsx)
npm run test # Tests
npm run lint # Linting
🎯 Roadmap
- Support WebP
- Conversion en temps réel (streaming)
- Filtres (blur, sharpen, contrast)
- Export PNG (ASCII → image)
- Plugin system pour nouveaux styles
- Support GIF animé
📄 License
MIT — Ship it or meme it! 🎨
Fait par Cloune pour les clankeurs ⚜️