Skip to content

🖼️ JPG images

Lossy — photo-oriented, with small file sizes

✅ Free forever 🚫 No signup ⚡ Instant download
100 KB JPG

102,400 bytes

image/jpeg

100 MB JPG

104,857,600 bytes

image/jpeg

10 KB JPG

10,240 bytes

image/jpeg

10 MB JPG

10,485,760 bytes

image/jpeg

1 MB JPG

1,048,576 bytes

image/jpeg

25 MB JPG

26,214,400 bytes

image/jpeg

500 KB JPG

512,000 bytes

image/jpeg

50 MB JPG

52,428,800 bytes

image/jpeg

5 MB JPG

5,242,880 bytes

image/jpeg

About JPG images

JPEG (Joint Photographic Experts Group) is a lossy image format. It compresses continuous-tone images such as photographs very effectively, which is why it dominates web imagery and camera storage. Its MIME type is image/jpeg, with the extensions .jpg and .jpeg.

Sizes from 10 KB to 100 MB are available, for testing media upload features, verifying photo-management systems, and benchmarking image-optimisation libraries.

Characteristics of JPEG

Related reference and articles

📖 Where people get stuck

PNG, JPEG, GIF and WebP at sizes from 1 KB to 100 MB, for upload limits, thumbnail pipelines and exercising image libraries. What separates the formats is described above; what trips up an implementation is usually common to all of them.

Case What happens What to do
A small image exhausts memory Memory follows decoded pixel count, not file size. A 20 KB PNG at 10,000 by 10,000 pixels asks for roughly 400 MB in RGBA. Cap dimensions separately from bytes. You can read width and height from the header before decoding — getimagesize() in PHP, or in Pillow right after Image.open() and before load().
Portrait photos display sideways A camera does not rotate the pixels; it records which way up it was in the EXIF orientation tag. Anything that ignores the tag shows the sensor orientation. Read the orientation before generating a thumbnail, apply the rotation for real, then clear the tag. Rotating while leaving the tag makes compliant browsers rotate a second time. Inspect a file with the EXIF viewer.
A conversion drops the animation and the transparency A conversion routed through a browser canvas only ever holds one frame, so an animated GIF becomes a still of the first. Convert to JPEG and transparency flattens to white or black. To keep the animation you need something that understands multiple frames — ImageMagick or libvips rather than a canvas. To keep transparency, target PNG or WebP.
A file that looks like an image is not one Extension and Content-Type are both claims from the sender. An image with other data appended still opens normally in a viewer. Check the leading bytes, then re-encode before storing. Decoding and writing back out discards both appended data and embedded metadata. The byte sequences are in the magic bytes reference.

One exception matters when serving user-submitted images as they arrive: SVG is not an image in the relevant sense. It is a document that can execute script, so serving it from your own origin opens a cross-site scripting path. Serve it from a separate domain, or contain it with Content-Security-Policy and Content-Disposition: attachment.