Skip to content

Repository files navigation

ASCIIMaker

Turns an uploaded image into ASCII art you can copy and paste anywhere.

Live: asciimaker.netlify.app

What it does

Upload or drag-and-drop an image, and it's converted into ASCII art using a monospace character grid. Sobel edge-detection pass overlays directional line characters (|, /, \, _) for extra outlining/lineart.

Adjustable controls:

  • Resolution — output width in characters
  • Outline Strength — how aggressively edges get drawn as lines
  • Gradient Detail — "smoothness" of the transition from empty to dark characters e.g. blocky (about 6 characters) to ultra-detailed (a 70-character smooth gradient)
  • Font Size — adjust the font size in the textbox

Future features:

  • support for video formats
  • in-page image editing (crop/rotate/invert etc.)

Tech stack

Backend — Python, FastAPI, Uvicorn, NumPy (vectorized Sobel edge detection + brightness mapping), Pillow, pytest

Frontend — React, TypeScript, Vite, Tailwind CSS, oxlint

Deployment — FastAPI Cloud (backend), Netlify (frontend, continuous deployment from this repo), GitHub

Project structure

main.py              FastAPI app entrypoint
app/                 API routers, config, ASCII conversion logic
tests/               pytest suite
frontend/            React + Vite + Tailwind UI

Running locally

Backend:

pip install -r requirements-dev.txt
uvicorn main:app --reload

Frontend:

cd frontend
npm install
npm run dev

Set VITE_API_URL in frontend/.env.development to point at your local backend (defaults to http://localhost:8000).

About

Web-app for ASCII Art generation via custom image uploads

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages