Sample PNG images for testing uploads and viewers, free and CC0

png/transparent-256x256.png is RGBA with an alpha ramp, so a pipeline that drops alpha or composites onto black shows it wrong. png/animated-apng-10frames-128x128.png has 10 frames, and a decoder that does not know APNG shows only the first, which is itself a valid PNG.

png/grayscale-512x512.png is a single greyscale channel (mode L), for code that assumes three. png/1x1.png is one pixel in 69 bytes, the smallest valid PNG for upload and placeholder paths.

png/100x100.png, png/640x480.png and png/1920x1080.png are RGB test cards at 1,387, 4,208 and 11,110 bytes, for resizers and thumbnailers. Each of png/100x100.png, png/640x480.png and png/1920x1080.png prints its own dimensions and mode on the card, so a resize or colour-mode bug shows in the output image itself. png/1mb.png is 1,000,147 bytes of seeded noise at 1024x325, which PNG compression cannot shrink, for upload limits that need a real image of a known size.

8 files. The same list as JSON: https://loremfile.dev/png/index.json

PNG files
FileSizePropertiesDescription
100x100.png 1.4 KB (1,387 bytes) 100x100 A colour-bar test card with a border, centre cross and a label giving the dimensions and mode. 100x100, RGB.
Snippets
<img src="https://loremfile.dev/png/100x100.png" alt="">
curl -O https://loremfile.dev/png/100x100.png
1920x1080.png 11.1 KB (11,110 bytes) 1920x1080 A colour-bar test card with a border, centre cross and a label giving the dimensions and mode. 1920x1080, RGB.
Snippets
<img src="https://loremfile.dev/png/1920x1080.png" alt="">
curl -O https://loremfile.dev/png/1920x1080.png
1mb.png 1 MB (1,000,147 bytes) 1024x325 About 1 MB of seeded RGB noise. Incompressible, so the size is honest.
Snippets
<img src="https://loremfile.dev/png/1mb.png" alt="">
curl -O https://loremfile.dev/png/1mb.png
1x1.png 69 B 1x1 A single white pixel: the smallest useful PNG.
Snippets
<img src="https://loremfile.dev/png/1x1.png" alt="">
curl -O https://loremfile.dev/png/1x1.png
640x480.png 4.2 KB (4,208 bytes) 640x480 A colour-bar test card with a border, centre cross and a label giving the dimensions and mode. 640x480, RGB.
Snippets
<img src="https://loremfile.dev/png/640x480.png" alt="">
curl -O https://loremfile.dev/png/640x480.png
animated-apng-10frames-128x128.png 9.1 KB (9,083 bytes) 128x128, 10 frames An animated PNG of 10 frames at 100 ms, the colour bars rotating one step per frame so the animation is obviously running.
Snippets
<img src="https://loremfile.dev/png/animated-apng-10frames-128x128.png" alt="">
curl -O https://loremfile.dev/png/animated-apng-10frames-128x128.png
grayscale-512x512.png 1.9 KB (1,881 bytes) 512x512 A colour-bar test card with a border, centre cross and a label giving the dimensions and mode, converted to 8-bit greyscale.
Snippets
<img src="https://loremfile.dev/png/grayscale-512x512.png" alt="">
curl -O https://loremfile.dev/png/grayscale-512x512.png
transparent-256x256.png 3.2 KB (3,231 bytes) 256x256 A colour-bar test card with a border, centre cross and a label giving the dimensions and mode, with a horizontal alpha ramp so transparency is visible rather than uniform.
Snippets
<img src="https://loremfile.dev/png/transparent-256x256.png" alt="">
curl -O https://loremfile.dev/png/transparent-256x256.png

Every PNG file in one command, each checked against its hash: npx loremfile get --format png, or loremfile get --format png after pip install loremfile.

File names follow the naming grammar. Verify a download against sha256sums.txt.