Custom PNG Maker
Create custom PNG images from scratch with drawing tools, shapes, text, image import, and transparent backgrounds. Export pixel-perfect PNGs instantly.
About
PNG (Portable Network Graphics) uses lossless DEFLATE compression defined by ISO/IEC 15948 and supports full 32-bit RGBA color with an 8-bit alpha channel. This makes it the only raster web format that preserves both color fidelity and per-pixel transparency without generation loss. Getting transparency wrong - saving as JPEG, for instance - silently flattens your alpha channel to opaque white, breaking compositing in any downstream pipeline (web overlays, print prepress, game sprites). This tool renders directly to an HTML Canvas element and exports via the browser's native toBlob('image/png') encoder, producing spec-compliant PNG files with no server round-trip and no quality degradation.
Canvas dimensions are specified in device-independent pixels. The exported file's pixel dimensions match exactly: a 800 × 600 canvas produces an 800 × 600 PNG. Note: this tool does not embed DPI metadata; print resolution must be handled by your layout application. Anti-aliasing is applied by the browser's Canvas implementation and cannot be disabled for shape edges. For pixel-art workflows requiring nearest-neighbor rendering, set imageSmoothingEnabled to false before importing sprites.
Formulas
PNG file size depends on raw pixel data and DEFLATE compression efficiency. The uncompressed pixel buffer size is:
where W = width in pixels, H = height in pixels, C = bytes per channel count (4 for RGBA: red, green, blue, alpha each 8 bits). A 1920 × 1080 RGBA canvas requires 1920 × 1080 × 4 = 8,294,400 bytes (≈ 7.9 MB) before compression.
The Canvas API color model uses standard sRGB with straight (un-premultiplied) alpha. Each pixel is a tuple:
where A = 0 is fully transparent and A = 255 is fully opaque. When globalCompositeOperation is source-over (default), the compositing formula per channel is:
where αout = αsrc + αdst ⋅ (1 − αsrc). This is the Porter-Duff "over" operator used by all browser Canvas implementations.
Reference Data
| Format | Compression | Alpha | Max Colors | Animation | Best Use |
|---|---|---|---|---|---|
| PNG-8 | Lossless | 1-bit | 256 | No (APNG yes) | Icons, simple graphics |
| PNG-24 | Lossless | No | 16.7M | No | Photos without transparency |
| PNG-32 | Lossless | 8-bit | 16.7M + alpha | No | UI elements, overlays, sprites |
| JPEG | Lossy | No | 16.7M | No | Photographs |
| GIF | Lossless (LZW) | 1-bit | 256 | Yes | Simple animations |
| WebP | Both | 8-bit | 16.7M | Yes | Web optimization |
| SVG | None (XML) | Full | Unlimited (vector) | Yes (SMIL) | Scalable icons, logos |
| BMP | None | Optional | 16.7M | No | Legacy Windows apps |
| TIFF | Both | Yes | 16.7M+ | No | Print, archival |
| ICO | None/PNG | 8-bit | 16.7M | No | Favicons |
| AVIF | Lossy | 8-bit+ | 16.7M+ | Yes | Next-gen web images |
| HEIF | Lossy | Yes | 16.7M+ | Yes | Apple ecosystem photos |