Image Halftone SVG Builder
Convert a bounded local image into an original circle-dot SVG with explicit cell size, relative tone area and source-grid evidence.
Loading tool…
How to use Image Halftone SVG Builder
Convert a bounded local image into an original circle-dot SVG with explicit cell size, relative tone area and source-grid evidence. Create a geometric monochrome illustration rather than tracing a hard black-and-white contour. Each disjoint source cell contributes a circle whose area follows its mean linear-light tone. Download real editable SVG geometry with no embedded source image, user SVG, external paint server or script. The model describes relative circle area and makes no press or perceptual calibration promise.
- Provide local static source image, grid cell size in source pixels, literal svg title.
- Choose the supported mode and run the tool. Review its assumptions and any reported errors.
- Copy the result or download a separate output; reset to clear the current form.
Good to know
- One nonempty local image up to 8 MiB, 1,000,000 pixels and 2,048 per side. Static PNG, single-frame baseline JPEG or simple VP8/VP8L WebP only; full bounded structure/CRC preflight precedes native decoding. SVG, GIF, APNG, progressive JPEG, extended/animated WebP and compressed PNG metadata are refused. Native dimensions must match the header, including orientation. The native decoder has a 10-second wait; late bitmaps and all canvases are released.
- Cell size is a plain whole number from 2 through 128. At most 16,000 cells are planned from declared dimensions before decoding; choose a larger cell when needed. Partial right/bottom cells retain their actual dimensions, with no crop, pixel interpolation, row wrapping or resampling. Every source pixel belongs to exactly one cell.
- Browser-provided 8-bit sRGB channels are linearized with the standard sRGB transfer, alpha is composited over white in linear light, then relative luminance uses weights 2126 R + 7152 G + 722 B divided by 10,000. Each cell averages all its source pixels. Black-dot relative area is 1 minus mean luminance; white-dot relative area is mean luminance. Transparency always uses the stated white matte, including white-on-black output.
- Circle radius is half the shorter cell side times the square root of relative area. That area is relative to an inscribed circle, not the full rectangular cell. A maximally dark circular dot still leaves cell corners, and non-square partial edge cells use their shorter side. This deliberately illustrative dot model does not preserve exact whole-image tone, printer ink coverage, screen angle, device calibration or perceptual appearance.
- Only fixed SVG root/title/description/background/group/circle elements are generated, with literal escaped title and finite numeric coordinates. Radius and center serialize to six decimals; a rounded zero-radius dot is omitted. SVG is capped at 2 MiB and 16,000 circles. Readable evidence has at most the first 16 cell witnesses and 100,000 characters; it does not include source image bytes or metadata.
- The bounded pixel loop and SVG generation run in an explicitly scoped same-origin module Worker, with 10 seconds to prepare its fixed module and a separate 2-second computation deadline. Input RGBA samples are copied before transfer; errors, timeouts and late/duplicate events terminate ownership. No user source, expression, HTML or SVG is executed or mounted.
- Browser codec color conversion and alpha unpremultiplication can affect sampled values. This is not ICC-managed archival conversion, medical/scientific image analysis, print halftone calibration, image authentication or accessibility/contrast certification. Inspect the editable geometric result in its target application before sharing or printing.
- Structured text output is limited to 500,000 characters. Reduce the supplied source when that separate output budget is exceeded.
- Inputs are processed on this device and are not automatically saved or uploaded.
Common questions
Why are there white gaps around fully black dots?
The maximum dot is a circle inscribed in its rectangular cell. Its corners remain outside that circle. The reported relative area describes the circle model, not full-cell coverage or calibrated printer tone. Smaller cells can change the visual texture; they do not turn this into a press-calibrated halftone.
Does this change my original input?
No. The tool returns a separate result. Review that output before using it in another application.
Keep going with related tools
All images →Binary Pixel Outline to SVG
Threshold a supported local raster and trace its exact pixel-cell boundaries into a separate black SVG silhouette.
ImagesFixed Palette Dither Converter
Convert a local raster to your exact opaque palette using a nearest-color baseline or bounded forward error diffusion.
ImagesImage to ASCII Art
Convert a local raster into a bounded monospaced text grid with a custom lightness ramp, character aspect compensation and transparency background.