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

jpg/exif-orientation-6-640x480.jpg and jpg/exif-orientation-8-640x480.jpg store their pixels at 480x640 and carry EXIF orientations 6 and 8: a viewer that honours the tag shows them upright at 640x480, and one that ignores it shows them sideways.

jpg/cmyk-640x640.jpg is CMYK, which a pipeline that assumes RGB converts wrongly or refuses. jpg/progressive-1920x1080.jpg is progressive, decoded in passes, where jpg/1920x1080.jpg is baseline at the same size: 30,994 bytes against 56,817, and a decoder that supports only baseline fails on the first.

jpg/4000x3000.jpg is 4000x3000 in 279,204 bytes, for decoders and thumbnailers that must downscale a large frame. jpg/100x100.jpg and jpg/640x480.jpg are small RGB test cards, 4,615 and 14,992 bytes. jpg/1mb.jpg and jpg/10mb.jpg are 991,379 and 10,006,097 bytes of seeded noise, for upload limits that need a real image of a known size.

10 files. The same list as JSON: https://loremfile.dev/jpg/index.json

JPEG files
FileSizePropertiesDescription
100x100.jpg 4.6 KB (4,615 bytes) 100x100 A colour-bar test card with a border, centre cross and a label giving the dimensions and mode. 100x100, quality 85, 4:2:0 chroma subsampling.
Snippets
<img src="https://loremfile.dev/jpg/100x100.jpg" alt="">
curl -O https://loremfile.dev/jpg/100x100.jpg
10mb.jpg 10 MB (10,006,097 bytes) 1024x4035 About 10MB of seeded noise at quality 95, 4:4:4. Noise does not compress, so the size is honest.
Snippets
<img src="https://loremfile.dev/jpg/10mb.jpg" alt="">
curl -O https://loremfile.dev/jpg/10mb.jpg
1920x1080.jpg 56.8 KB (56,817 bytes) 1920x1080 A colour-bar test card with a border, centre cross and a label giving the dimensions and mode. 1920x1080, quality 85, 4:2:0 chroma subsampling.
Snippets
<img src="https://loremfile.dev/jpg/1920x1080.jpg" alt="">
curl -O https://loremfile.dev/jpg/1920x1080.jpg
1mb.jpg 991.4 KB (991,379 bytes) 1024x400 About 1MB of seeded noise at quality 95, 4:4:4. Noise does not compress, so the size is honest.
Snippets
<img src="https://loremfile.dev/jpg/1mb.jpg" alt="">
curl -O https://loremfile.dev/jpg/1mb.jpg
4000x3000.jpg 279.2 KB (279,204 bytes) 4000x3000 A colour-bar test card with a border, centre cross and a label giving the dimensions and mode. 4000x3000, quality 85, 4:2:0 chroma subsampling.
Snippets
<img src="https://loremfile.dev/jpg/4000x3000.jpg" alt="">
curl -O https://loremfile.dev/jpg/4000x3000.jpg
640x480.jpg 15 KB (14,992 bytes) 640x480 A colour-bar test card with a border, centre cross and a label giving the dimensions and mode. 640x480, quality 85, 4:2:0 chroma subsampling.
Snippets
<img src="https://loremfile.dev/jpg/640x480.jpg" alt="">
curl -O https://loremfile.dev/jpg/640x480.jpg
cmyk-640x640.jpg 25.3 KB (25,267 bytes) 640x640 A CMYK JPEG, the colour space that trips pipelines expecting RGB. Replaces jpg/cmyk-640x480.jpg, whose name misstated its size.
Snippets
<img src="https://loremfile.dev/jpg/cmyk-640x640.jpg" alt="">
curl -O https://loremfile.dev/jpg/cmyk-640x640.jpg
exif-orientation-6-640x480.jpg 16 KB (16,048 bytes) 480x640 Pixels stored rotated with EXIF orientation 6. The label reads upright only when the viewer honours the tag, so a viewer that ignores EXIF shows it sideways.
Snippets
<img src="https://loremfile.dev/jpg/exif-orientation-6-640x480.jpg" alt="">
curl -O https://loremfile.dev/jpg/exif-orientation-6-640x480.jpg
exif-orientation-8-640x480.jpg 16 KB (16,011 bytes) 480x640 EXIF orientation 8: stored pixels are 480x640 and rotated clockwise. Honouring the tag displays the UP label upright at 640x480; ignoring it shows the image sideways.
Snippets
<img src="https://loremfile.dev/jpg/exif-orientation-8-640x480.jpg" alt="">
curl -O https://loremfile.dev/jpg/exif-orientation-8-640x480.jpg
progressive-1920x1080.jpg 31 KB (30,994 bytes) 1920x1080 A colour-bar test card with a border, centre cross and a label giving the dimensions and mode, saved as a progressive JPEG rather than baseline.
Snippets
<img src="https://loremfile.dev/jpg/progressive-1920x1080.jpg" alt="">
curl -O https://loremfile.dev/jpg/progressive-1920x1080.jpg

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

Superseded

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