From 44039f3587e4abf07886bbb07333894c3d0cbf85 Mon Sep 17 00:00:00 2001 From: patrick Date: Thu, 14 May 2026 13:17:39 -0400 Subject: [PATCH] content: add 2eInk project --- public/static/2e-ink.webp | Bin 0 -> 51332 bytes src/content/projects/2e-ink.md | 31 +++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 public/static/2e-ink.webp create mode 100644 src/content/projects/2e-ink.md diff --git a/public/static/2e-ink.webp b/public/static/2e-ink.webp new file mode 100644 index 0000000000000000000000000000000000000000..c6352eed1221743c411353ff68314cb167232214 GIT binary patch literal 51332 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

eG^u394sK(wRlW!ryU`-^ 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 + Svelte + WebAssembly + TailwindCSS + + +A privacy-focused web app that optimizes your photos and artwork for e-ink displays. I built this to create custom screensavers for my Kindle. Built with Svelte and WebAssembly, all image processing happens entirely client-side. + +E-ink screens have unique display characteristics: limited grayscale levels, specific resolutions, and slow refresh rates. 2eInk handles the technical complexity of preparing images for these devices, applying professional-grade transformations: + +- **Smart Resizing** - Automatically scales images to match your device's exact resolution +- **Grayscale Quantization** - Maps colors to the specific gray levels your display supports (typically 4, 8, or 16 levels) +- **Advanced Dithering** - Uses Floyd-Steinberg dithering to simulate additional gray tones and eliminate banding artifacts +- **Fine-tuning Controls** - Adjust contrast, brightness, gamma, and sharpening for optimal visual quality + +Batch process entire photo albums in seconds. Download a zip of optimized images ready to transfer to your e-reader, digital picture frame, or other e-ink device.