Skip to content
Photo2Pattern

Free image pixelator

Pixelate an image, or just the box you drag

Drop a picture, choose a block between 2 and 256 pixels a side, and either the whole frame or one rectangle inside it is replaced by the mean color of each block. It is free, needs no account, and the file never leaves the tab it was opened in. The averaging runs in linear light rather than on the raw sRGB bytes, which is the difference between blocks that sit level with the picture and blocks that sit a shade under it, and the page names the grid it produced — how many blocks, and how many source pixels went into one — instead of leaving you to count them.

  • 100% free
  • No signup
  • 2–256 px blocks
  • Whole frame or one box
  • Exact block count

Press Ctrl+V anywhere on the page to drop in the picture you want reduced to blocks — no need to click the field first.

How to pixelate a picture, or one part of it

The block count decides the result; everything else here is about where to apply it.

  1. Drop the picture and set a block size

    The slider runs from 2 pixels a side to 256. Judge it against the thing you want to lose rather than against the picture: a face 200 pixels wide stops being a face somewhere between 12 and 20 pixels a block, a car number in the background goes at about 8, and a whole photograph turned into an avatar-sized mosaic wants 24 upward. The readout under the picture names the grid the moment you move the slider, so you are choosing a number of blocks rather than guessing at a strength.

  2. Box off the part that matters, if it is only a part

    Drag anywhere across the picture and the scope switches from the whole frame to that rectangle. Four fields underneath hold the same box as left, top, width and height in source pixels, which is the route that needs no pointer and the route that gets you the same rectangle twice. The block grid squares up to the corner of the box rather than to the corner of the photograph, so a boxed area is never cut through the middle of a block.

  3. Check the grid, then take the PNG

    The line under the picture gives the block count and the mean size of one block in source pixels, to one decimal place, because the area rarely divides evenly and the last column and row absorb the difference. Download writes a fresh canvas that has never had the dashed outline drawn on it. The file is a PNG whatever went in, which keeps it lossless — a JPEG re-encode would put ringing along every block edge you just made.

Technical specifications

Block size2 to 256 pixels a side, by slider or typed
What gets blockedThe whole frame, or one rectangle set by dragging or by four whole-pixel fields
Grid originThe top-left corner of the blocked area, not of the picture, so a boxed region is never cut mid-block
AveragingLinear-light mean per block through lib/raster, the same routine the chart pages use
Uneven divisionThe final column and row absorb the remainder; block sizes differ by at most 1 pixel
RefusedFewer than 2 blocks across or down — a single block is a flat fill, and the page offers the largest size that still gives two
Longest side kept3,000 pixels; a larger original is resampled to that before any block is taken
OutputPNG, one layer, 8 bits a channel, no EXIF or color profile carried over

Frequently asked questions

What block size should I pick?

Work back from the feature you want gone rather than from the size of the picture. A recognizable feature disappears once one block spans it, so measure the thing in pixels and use roughly a third of that: a 60-pixel face needs about 20, a line of small print needs a block as wide as two or three characters, and a whole-frame mosaic look starts around a fortieth of the frame width. The block count in the readout is the honest guide — under about 8 blocks across, you have a color study rather than a picture.

Why do pixelated images from other tools come out darker?

Because they averaged the sRGB bytes instead of the light those bytes stand for. An sRGB value carries roughly a 2.2 gamma, so the arithmetic mean of a black pixel and a white pixel is 128, which displays as a gray far darker than the halfway gray your eye expects — and every block containing an edge is exactly that case. The averaging here decodes to linear light, takes the mean and re-encodes, which is why the blocks sit at the same brightness as the untouched picture beside them instead of a step below it.

Can I pixelate one part and leave the rest sharp?

Yes — drag a box and only what is inside it is touched. Everything outside the rectangle comes through at full resolution, because the operation is a replacement of that rectangle's pixels on a copy of the original rather than a filter applied to the frame. If you need several separate areas covered in one pass, the censor page is the one for that — it holds a list of boxes rather than one.

Does pixelating make the file smaller?

Usually yes, and sometimes dramatically. A PNG of a heavily blocked picture compresses well because long runs of identical pixels are exactly what its filters were designed for, so a photograph that was 3 MB can land under 200 KB at a 24-pixel block. The exception is a light block over a noisy photograph, where you have removed almost nothing and added nothing, and the PNG lands larger than the JPEG you started with simply because PNG is lossless and JPEG was not.

Why is the last row of blocks a different size?

Because the area almost never divides evenly by the block, and the remainder has to go somewhere. Splitting it across every block would shift the whole grid by a fraction of a pixel and blur every edge; dropping it would leave a strip of the original showing along two sides. So the final column and the final row take the remainder, which makes them up to one pixel wider or taller than the rest. The readout gives the mean rather than a round number for that reason.

What happens to transparent areas?

A block that was more than half transparent stays clear, and the rest are painted fully opaque. The threshold matters when you pixelate a cut-out PNG: the ragged edge of the subject becomes a hard, blocky edge instead of a soft one, because a block is either kept or dropped and there is no half-block. If you want the transparency preserved smoothly, flatten the image onto a background first and pixelate that.

Is a pixelated area safe to publish?

Not by itself, and this page does not claim it is. Pixelation replaces a block with its mean, which is a lossy summary rather than a deletion, and a summary of something short and high-contrast — a word, a number, a plate — can be tested against candidates until one matches. Use this page for the look and for softening detail nobody is hunting for. When the point is that something must not be readable again, take the redaction page, which flattens a solid fill into the exported pixels, or the plate page, which refuses the settings that leave a residue.

About block averaging, and where the darkening comes from

Pixelation is one arithmetic operation repeated: divide an area into a grid, take the mean of the pixels in each cell, and paint the cell that color. The interesting part is the word “mean”. An sRGB byte is not proportional to the light it stands for — it carries roughly a 2.2 gamma so that dark tones get more of the 256 available steps — and averaging those bytes directly answers a question nobody asked. Take a block straddling a black-and-white edge: the byte mean is 128, which on screen is about 22% of the light of white, while the honest halfway point is 188. Multiply that across every block that contains an edge, which in a photograph is most of them, and the pixelated version comes out visibly duller than the original. Decoding to linear light, averaging, and re-encoding costs two table lookups a channel and removes the problem entirely. It is the same routine that gives a cross stitch chart and a Perler bead pattern their color, because a block of pixels and a stitch are the same cell asked a different question.

The other thing worth knowing is that pixelation and downscaling are not the same operation, even though a great many tools implement the first as the second. Shrinking a picture to 40 pixels wide and blowing it back up gives something that looks similar, but the browser chose the filter — usually a bilinear or Lanczos resample — and that filter spreads each output value over a neighborhood rather than confining it to a block, so the result is a smeared mosaic rather than a grid of true means. It also means the same picture gives a slightly different answer in different browsers. Here every source pixel contributes to exactly one block, the block boundaries are integers, and the last column and row take the remainder so nothing is dropped and nothing is counted twice. That determinism is the whole reason the readout can promise a block count rather than describe a strength.

Where this page stops is worth stating plainly, because the query that brings people here is often about hiding something rather than about the look. A block is a summary, and a summary of a short high-contrast string can be brute-forced: render the candidate strings in the same font, put each one through the identical block size, and compare the means it produces against yours. That is a real published attack, not a theoretical one. So use this page for the effect, for softening a background, for making a mosaic; send anything that must stay unreadable to the redaction page, which flattens a solid fill into the exported pixels, or to the plate page, which works out the floor from the size of the thing being covered and refuses the settings underneath it. If it is faces you are covering, the face page proposes the ovals for you. And if what you actually want is the blocky look taken further — a fixed palette, a symbol in every cell, a printable grid — that is the pixel art converter and the grid overlay.

Where the picture is opened

Your picture is opened by JavaScript running in the tab you are reading this in. It is never uploaded, never sent to a server and never stored anywhere — there is no upload step to undo, because there is no upload. Close the tab and nothing of it remains.

The blocked version is built on a canvas in the same tab and handed to you as a download. Nothing is cached between visits, so reloading the page loses the picture, the box and the block size together.