Placeholder Image Generator

Generate dummy images at any size in PNG, JPG, WebP or SVG, with your own colours and label, one at a time or as a ZIP of every size you list.

🌐 Español

Preview of a 600 by 400 pixel placeholder image

Preview at 600 × 400 px, scaled to fit. Auto-contrast picked black text (background luminance 0.60, threshold 0.18).

🔒 Private by design: everything runs locally in your browser and never uploaded to any server.

Grey rectangles are load bearing

Every layout goes through a stage where the real photographs do not exist yet. The temptation is to grab a stock image, or to point an image tag at whichever free placeholder domain you remember, and move on.

Both choices cost you later. A stock photo makes the mockup lie about how the design behaves with real content of an awkward shape. A hotlinked placeholder makes your prototype depend on somebody else’s uptime, and quietly reports every render back to them. When that service disappears, and several have, every mockup you ever made breaks at once.

A generated file has neither problem. It is a rectangle of a colour you chose, at a size you chose, with the dimensions written across it so you can tell your boxes apart, sitting in your own project folder.

Making one image, then making all of them

  1. Set Width (px) and Height (px). Anything from 1 to 5000 in each direction.
  2. Choose a Format. The four options are PNG, JPG, WebP and SVG.
  3. Pick a Background colour with the colour swatch.
  4. Leave Auto-contrast text colour ticked and the label switches between black and white for you, or untick it to reveal a Text colour swatch of your own.
  5. Show a label controls whether any text is drawn. With it on, Label text (blank = the dimensions) lets you type your own caption.
  6. Watch the preview, which redraws as you type and tells you the size it is showing and, when auto-contrast is on, which colour it chose and why.
  7. Click Generate image to download it, or Copy data URI to put the whole file on your clipboard as inline text.
  8. To make a set instead, list one size per line in the batch box. The button changes to Generate ZIP and the width and height fields above stop being used.

The batch box arrives prefilled with five sizes worth knowing: 728x90, 300x250, 160x600, 1080x1080 and 1200x630. That is three standard ad units, a square social post and an open graph card.

Four formats, and when each earns its place

SVG is the one people underuse. A placeholder is a filled rectangle plus a centred string, which is about three hundred bytes of markup regardless of whether it stands in for a thumbnail or a billboard, and it stays sharp at every scale. If your mockup is going to be zoomed or printed, use it.

PNG is the safe lossless raster and the right default when something in your pipeline will not accept a vector.

JPG and WebP exist because sometimes the point of the placeholder is to be roughly as heavy as the photograph it replaces. Both are encoded at a quality of 0.92. There is a real safeguard here worth knowing about: browsers are allowed to silently hand back a PNG when asked for a format they cannot encode, which would leave you with a mislabelled file. That case is detected and reported as an error instead.

The label sizing rule

Text size is twelve percent of the shorter side, clamped between 10 and 96 pixels.

Measuring the shorter side rather than the longer one is the whole trick. A 728 by 90 leaderboard is mostly width, and sizing against width would produce text far taller than the banner. Against the shorter side it gets an 11 pixel label that fits. A 1200 by 630 card gets 76 pixels, a 600 by 400 thumbnail gets 48, and a tiny 50 by 50 square hits the 10 pixel floor.

Both output paths use the identical rule, so the SVG and the PNG of the same placeholder carry the same text at the same size. Your typed label is escaped before it is written into the SVG markup, so an ampersand or an angle bracket in the caption cannot break the file.

Filling in the rest of the mockup

Placeholder images are half the job. For the text that sits beside them, Lorem Ipsum Generator produces paragraphs, sentences or an exact word count, and Fake Data Generator covers names, addresses and other structured filler for tables and lists.

When real images do arrive, Resize Images will bring them to the sizes your layout was built around. If you liked the inline data URI trick, Image to Base64 does the same conversion for photographs you already have, and SVG to PNG rasterises the vector placeholders at a fixed size. For a real social preview card rather than a stand-in, OG Image Generator is the direct route. The rest is on the generators hub.

See it in action

Screenshot of the Placeholder Image Generator tool with width and height in pixels with a format choice of PNG, JPG, WebP or SVG, a background colour with auto-contrast label text, and an optional batch field taking several WIDTHxHEIGHT sizes at once
Placeholder Image Generator mid-process: width and height in pixels with a format choice of PNG, JPG, WebP or SVG, a background colour with auto-contrast label text, and an optional batch field taking several WIDTHxHEIGHT sizes at once.
Diagram: where the work happens on a SysFenix page that has no file input at all: the tool arrives as ordinary JavaScript inside the page, works the answer out on your own device and renders it in place, so the upload, queue and server-side record a typical online tool needs never happen
Where the work happens on a SysFenix page that has no file input at all: the tool arrives as ordinary JavaScript inside the page, works the answer out on your own device and renders it in place, so the upload, queue and server-side record a typical online tool needs never happen.

Frequently asked questions

Why generate placeholders locally instead of using a hotlinked service?

Because a hotlinked placeholder is a live dependency inside your mockup. It breaks when the service has an outage, when the page is opened offline, when a corporate proxy blocks the domain, and permanently when the service shuts down, which several popular ones have. A generated file sits in your project and keeps working. It also stops a third party from logging every render of your prototype.

What appears on the image if I do not type a label?

The dimensions, written as the width, a multiplication sign and the height. That is the convention placeholder services made familiar, and it is genuinely useful while you are laying out a page, because you can see at a glance which box is which size. Untick the label option entirely and you get a plain rectangle of colour.

How does the automatic text colour decide between black and white?

It computes the background's relative luminance using the sRGB formula from the accessibility guidelines, then picks whichever of black or white has the higher contrast ratio against it. The crossover sits at a luminance of about 0.179, so backgrounds lighter than that get black text and darker ones get white. Untick the option to choose the text colour yourself.

How big can the label text get?

It is scaled to twelve percent of the shorter side, then held between 10 and 96 pixels. Measuring against the shorter side is what stops a wide banner from getting text taller than the banner itself, so a 728 by 90 leaderboard gets an 11 pixel label while a 1200 by 630 social card gets 76. The same rule is used for both the vector and the raster output, so they never disagree.

How does the batch box work?

Put one size per line in the batch field and the width and height boxes above are ignored. Separators are flexible, so newlines, commas and semicolons all work, and the two numbers can be joined with x, a capital X, an asterisk or a multiplication sign. Duplicate sizes are collapsed, lines that do not parse are skipped rather than causing an error, and the result arrives as a single ZIP file.

Which format should I choose?

SVG when the placeholder needs to scale, because it is a rectangle and a text element and stays a few hundred bytes at any size. PNG for a lossless raster. JPG or WebP when you want a file whose weight is closer to the real photograph it stands in for. The two lossy formats are encoded at a quality of 0.92.

What does the copy button put on my clipboard?

A complete data URI for the current single image, meaning the whole file encoded inline as text. Paste it straight into a src attribute or a CSS background and the image appears with no separate file and no network request at all. It is only offered for a single image, since a ZIP is not something you can inline that way.

What are the limits on width and height?

One pixel at the smallest and five thousand at the largest, in each direction, rounded to whole pixels. Those bounds are applied to batch entries as well, so a stray extra digit in your list becomes a 5000 pixel side rather than an attempt to allocate something enormous. Emptying a number field entirely reads as the minimum rather than as the default.

Related tools