The tool you need, ready to use

Circle Dot Art Maker

Choose or drop an image and it is split into cells according to the number of dots across, with a circle drawn in each cell using its average color. The first view shows the sample image at 48 dots across in the classic dots style. The style swatches next to it are previews drawn from your current image, and choosing halftone makes circles larger in darker areas. Reduce the colors and you can count circles per color, as in a bead pattern, then save as PNG, JPG or an SVG that stays sharp at any size. Your image is never sent to a server.

Last updated 2026-10-20All math stays in your browser

Sample image (rainbow lorikeet, CC0)960 × 640 px

Your image is processed only in this browser and is never sent to a server. You can also drag it in or paste it.
StylePreviews drawn from your image
Dots drawn

Layout
Dots line up in straight rows and columns, the same layout as a bead board or an LED sign.
Dot size
Every dot is the same size, and the picture is drawn with color alone.
12%
The share of the cell width left empty. At 0%, neighboring dots touch.
Background
Transparency is kept only in PNG and SVG. JPG is saved on a white background.
Color
Each cell uses the average color of the original pixels inside it.

Dots per colorClick a color to highlight only its dots.

    Last updated 2026-10-20Your inputs are not stored

    ROBERIN standardThe tool you need,
    ready to use.
    • Clear at a glanceInputs and results sit where you expect them.
    • Result firstThe key number comes first; the working only when you need it.
    • Ask lessNo sign-up and no unnecessary details.

    A 3:2 photo at 48 dots across becomes 1,536 circles: each one takes the average color of its cell, and halftone grows the circle as the cell gets darker

    Turning a photo into circle dots means dividing it into evenly spaced cells and drawing one circle in each, filled with the average color of the pixels inside that cell. You choose how many dots go across, and the tool sets the number of rows from the image's proportions. Split the 960 × 640 px sample into 48 dots across and you get 32 rows and 1,536 circles in all.

    If every circle stays the same size, the picture is drawn by color alone, like beads or an LED sign. Choose "By tone (halftone)" and circles grow in the darker cells, which looks like the dots in a printed newspaper. The six style swatches next to the picture are previews drawn from the image you loaded, and "Dots per color" below shows how many circles were drawn in each color. Your image is processed only in this browser and is never sent to a server.

    When to turn a photo into circle dots

    • You want a pop art poster or a merch graphic: halftone is the printing method of showing tone with dots of different sizes. The Ben-Day dots, devised by the printer Benjamin Day in 1879, became widely known through Roy Lichtenstein's pop art. The "Pop art" style cuts the picture to six colors and varies circle size with tone to get that look.
    • You are planning a bead or sticker pattern: one circle is one bead. Hama Midi beads are 5.0 mm across, so 48 beads wide comes to about 24 cm, and Mini beads (2.5 mm) give about 12 cm. If you reduce the picture to the number of bead colors you own, "Dots per color" is exactly how many beads of each color you need.
    • You are making an LED-board or neon-style thumbnail: widely spaced circles on a black background look like a screen of lit bulbs. The simpler the picture, the better it reads.
    • You are sending it to large-format print or a cutting file: saved as SVG, every circle stays a real shape, so edges stay sharp at any size, and circles of the same color are grouped, which makes it easy to recolor them in one step in a design program.

    How to use it

    1. Add an image: click "Choose image" or drag a picture onto the work area. A copied image can be pasted with Ctrl+V (⌘V).
    2. Pick a style: click one of the six round swatches and the layout, dot size, spacing, color and background change together, with the dots redrawn outward from the center.
    3. Set the dots across: type a number, or use the slider or the chips, anywhere from 16 to 200. Fewer dots mean larger circles and a simpler picture.
    4. Fine-tune: below, change the layout (grid or staggered), dot size (all the same or by tone), spacing, background and color one at a time. Once a value differs from the style, the swatch selection clears.
    5. Check and save: use "Show original" to flip between the two, and click a color under "Dots per color" to highlight only its circles. Then choose PNG, JPG or SVG and the long-side size, and click "Save".

    The six styles

    StyleLayoutDot sizeSpacingColorBackgroundGood for
    Classic dotsGridAll the same12%Original colors#FFFFFFA photo-like default for profile pictures and thumbnails
    LED boardGridAll the same26%Original colors#000000A scoreboard or neon-sign look on a dark background
    HalftoneStaggeredBy tone0%Single color #1A1A1A#FFFFFFBlack-and-white newspaper or comic-style dots for posters
    Pop artStaggeredBy tone0%Reduced to 6 colors#FFF4D6Pop art in the spirit of Ben-Day dots, on a cream background
    Bead patternGridAll the same6%Reduced to 16 colors#FFFFFFA bead or sticker pattern where you count dots per color
    Retro gameGridAll the same14%Game Boy, 4 colors#081820The four-green screen of an old handheld console

    After you pick a style you can still change any value one by one. The dots-across setting stays where it is when you switch styles.

    Choosing the dots across: a 3:2 photo

    Dots acrossGrid rows · circlesStaggered rows · circlesOne cell when saved at 2,048 pxMade with Midi beads (5.0 mm)
    2416 rows · 38418 rows · 42385.3 pxabout 12 × 8 cm
    4832 rows · 1,53637 rows · 1,75842.7 pxabout 24 × 16 cm
    7248 rows · 3,45655 rows · 3,93328.4 pxabout 36 × 24 cm
    9664 rows · 6,14474 rows · 7,06721.3 pxabout 48 × 32 cm
    14496 rows · 13,824111 rows · 15,92914.2 pxabout 72 × 48 cm

    For photos where the outline matters, such as faces or animals, 48 to 72 dots across works well, and halftone posters blend tones smoothly from about 96 up. The bead size is just the diameters added up, so it can come out slightly larger depending on the spacing of your bead board.

    How it is calculated

    1. Dividing into cells: take the cell width as 1 and the dots across as c. For a grid, the number of rows is round(c × height ÷ width). For a staggered layout the row spacing is √3/2 (about 0.866), so the rows are round((c × height ÷ width − 1) ÷ 0.866) + 1, and every second row is shifted half a cell and holds c − 1 circles.
    2. Dot color: the original pixels within ±0.5 cell across and ±0.5 cell down of the circle's center (±0.433 cell for staggered) are averaged, weighted by opacity. If the average opacity is below one half, no circle is drawn.
    3. Choosing colors: "Reduce colors" groups colors with median cut (Heckbert, 1982), which repeatedly splits at the median of the widest channel. It then refines the result four times in the OKLab color space (Ottosson, 2020), and each circle takes the nearest color. Game Boy and PICO-8 also pick the nearest color in OKLab. "Grayscale" keeps the relative luminance as a gray.
    4. Dot size: with "All the same", the radius is (1 − spacing) ÷ 2 cells. With "By tone", that radius is multiplied by √k, so the circle's area is proportional to k.

    k = (Ybackground − Ycell) ÷ (Ybackground − Yreference)  (clamped to 0–1)  ·  Y = 0.2126 R + 0.7152 G + 0.0722 B (linear sRGB)

    Y is the relative luminance defined in WCAG 2.2. The reference Yreference is the ink color for "Single color"; otherwise it is 0 when the background is light (Y ≥ 0.5) and 1 when it is dark. A transparent background is treated as white paper. That is why circles grow in dark areas on a white background and in light areas on a black one. The table below shows circle sizes for gray cells in the Halftone style (staggered layout, white background, ink #1A1A1A, spacing 0%). In the staggered layout each circle occupies cell width² × 0.866, so a touching circle covers 90.7% of its share.

    Cell color (R = G = B)Relative luminance YkCircle diameter (of cell width)Share of the cell filled
    26 (same as the ink)0.01031.000100.0%90.7%
    640.05130.95997.9%86.9%
    1280.21590.79289.0%71.9%
    1920.52710.47869.1%43.3%
    2300.79130.21145.9%19.1%
    255 (white)1.00000.000Not drawn0%

    When you save, the long side you choose sets how many pixels one cell gets. A 3:2 photo at 48 dots across, saved at 2,048 px, has cells of about 42.7 px and comes out at 2048 × 1365 px. SVG writes each dot as a circle shape on a 10-unit cell, with circles of the same color in one group.

    Grid versus staggered (honeycomb)

    Of all the ways to pack equal circles on a plane, the densest is the hexagonal arrangement in which every row is offset like a honeycomb, and L. Fejes Tóth proved that none is denser. Touching circles cover 78.5% of the area in a square grid (π/4) and 90.7% in the hexagonal arrangement (π/(2√3)).

    LayoutRow spacing (of cell width)Area covered when touching3:2 photo, 48 acrossGood for
    Grid178.5%32 rows · 1,536Bead boards, LED signs, counting dots per color
    Staggered (honeycomb)0.86690.7%37 rows · 1,758Halftone, a dense texture with few gaps

    The gaps between circles show the background color, so the same photo looks bright and light on white and dark and crisp on black. Widening the spacing makes that difference stronger.

    Common mistakes

    • I changed the background in halftone and the picture flipped: tone mode sizes circles by how far each cell is from the background in brightness. Switching from white to black makes circles larger in the light areas. For the look of dark ink on paper, use a light background.
    • I counted beads while still on original colors: with original colors, every circle differs slightly, and above 64 colors "Dots per color" is only an approximate count over 12 bands of similar colors. Decide the number of colors with "Reduce colors" first, then read the counts you will actually buy.
    • I saved a transparent background as JPG: JPG can't hold transparency, so it becomes white. Save as PNG or SVG when you need it.
    • I raised the dots a lot and saved as SVG: a 3:2 photo at 144 across has 13,824 circles. The more circles, the larger the file and the slower it is to open in a program, so unless the picture is for large printing, PNG is easier to handle.
    • I got an error with a very tall image: a picture can hold up to 60,000 circles. A 1:2 portrait image at 200 across would need 400 rows and 80,000 circles, which is over the limit, so lower the dots across.

    Limits and cautions

    • It does not imitate a print shop's screening: screen angles, the separation into four CMYK plates, or ink spreading that enlarges the dots. Each picture uses circles at a single angle.
    • Even in tone mode the circles can't fill the cell (at most 78.5% for a grid, 90.7% staggered), so the darkest areas look lighter than the original. Setting the spacing to 0% gives the deepest result.
    • Colors on screen differ from real beads or ink. When you use the result as a pattern, check it against the color chart of the beads you own and prepare a few extra.
    • Game Boy and PICO-8 borrow only the colors of those devices. They do not follow the screen size or color-count limits of the hardware.
    • Only formats your browser can open are accepted. An animated GIF uses its first frame only, and HEIC may not open in some browsers, so convert it to JPG or PNG first. Files up to 40 MB are accepted, and the image is scaled down to a 2,048 px long side before calculating.
    • The maximum saved size of 4,096 px is set to stay within the canvas limit of iOS browsers (4,096 × 4,096), so that saving works on every device.

    As of 2026-10-20. The definitions of halftone and Ben-Day dots, circle packing density, bead diameters and the relative luminance formula were checked against the sources below on that date. The style values and the 60,000-circle limit are choices made by this tool. The sample image is "Blue, red and green parrot (Unsplash)" by Mikhail Vasilyev on Wikimedia Commons (CC0 1.0), reduced to 960 × 640 px.

    Sources

    Frequently asked questions

    How is circle dot art different from pixel art?

    Pixel art fills each cell completely with a square, while circle dots draw a circle in the middle of the cell, so the background shows between circles. Even when the circles touch, a grid layout fills only 78.5% of each cell, so the background color changes the mood of the picture a lot.

    How does halftone (by tone) decide the circle size?

    The area of each circle is made proportional to the brightness difference from the background. On a white background with ink #1A1A1A and spacing 0%, a gray-128 cell gets a circle 89.0% of the cell width across, a gray-192 cell gets 69.1%, and white cells get no circle. Switch the background to black and the circles grow in the light areas instead.

    How do I use it for a bead pattern?

    Choose the "Bead pattern" style, or use "Reduce colors" to match the number of bead colors you own, then read the count per color under "Dots per color". Hama Midi beads are 5.0 mm across, so 48 beads wide is about 24 cm, and Mini beads (2.5 mm) give about 12 cm. Screen colors differ from real beads, so check against your color chart.

    Should I choose grid or staggered (honeycomb)?

    Choose grid when rows must line up, as on a bead board or LED sign, and staggered when you want a denser texture with fewer gaps. Touching circles cover 78.5% of the area in a grid and 90.7% when staggered. A 3:2 photo at 48 dots across gives 32 rows and 1,536 circles as a grid, or 37 rows and 1,758 circles staggered.

    What is good about saving as SVG?

    Each circle stays a circle shape, so edges stay sharp at any size, and circles of the same color are grouped, which makes it easy to recolor them at once in a design program. The more circles there are, the larger the file gets, though, so a 3:2 photo at 144 across (13,824 circles) can be slow to open.

    Can I save with a transparent background?

    Choose "Transparent" for the background and save as PNG or SVG, and the space between circles is left empty. JPG can't hold transparency, so it is saved on a white background. Parts of the original that are transparent (average opacity below one half) get no circle.

    How many pixels is the saved picture?

    You choose the long side from 1,080, 2,048 or 4,096 px. A 3:2 photo at 48 dots across, saved at 2,048 px, comes out at 2048 × 1365 px with cells of about 42.7 px. The 4,096 px maximum is set to stay within the iOS canvas limit (4,096 × 4,096) so saving works on every device.

    Is my image uploaded to a server?

    No. The image is read and drawn inside your browser and is never sent to a server. It disappears when you close the tab, and your settings are not stored either.