Sample image files — free download

JPEG, GIF, BMP, TIFF, WEBP, ICO and SVG test images in one place, including an animated GIF, a favicon, both TIFF byte orders, a 32-byte lossless WEBP, and the security cases: an SVG carrying a script, and a JPEG whose magic bytes say something else entirely.

15 ready-made image test files

FileSizeWhat it catches
flat-96x96.webp32 bytesModern image pipelines. WEBP is a RIFF container, so it starts "RIFF" like a WAV rather than with a signature of its own - the format name sits four bytes later, which signature checks routinely miss. Decodes in every current browser, Pillow and anything built on libwebp.download
transparent-1x1.webp32 bytesAlpha handling and minimum-size assumptions. The alpha channel is half-opaque rather than fully on or off, so a pipeline that flattens transparency shows it immediately. Useful as a tracking-pixel or minimum-upload fixture in the format browsers prefer.download
favicon.ico145 bytesFavicon and icon handling. ICO is a container format, not a single image - parsers that assume one image per file, or that cannot read a PNG-compressed entry, fail here.download
polyglot-gif-html.gif192 bytesContent-type sniffing. If your server serves user uploads without X-Content-Type-Options: nosniff, a browser may sniff this as HTML and execute it from your origin, even though it passed image validation on upload.download
svg-external-entity.svg273 bytesSVG rasterisers backed by a full XML parser with entity resolution left on - a file-disclosure path (XXE) that image-processing code rarely gets audited for.download
svg-plain.svg303 bytesBaseline for the SVG sanitiser cases below - this one must survive sanitisation intact.download
svg-with-script.svg457 bytesThe single most commonly missed upload vulnerability: serving user-uploaded SVG from your own origin executes script in your security context. Your handler should either sanitise the markup or serve it with Content-Disposition: attachment and a restrictive CSP.download
gif-static.gif774 bytesPalette/indexed-colour handling. A decoder that assumes truecolour input will mishandle the colour table; the LZW stream also exercises code that many "image" libraries delegate and rarely test.download
jpeg-tiny-16px.jpg774 bytesDecoders with a minimum-dimension assumption, and thumbnail grids that break on an image smaller than the cell.download
fake-jpeg-is-executable.jpg2.1 KBUpload validation that trusts the file extension or the client-supplied Content-Type instead of sniffing actual magic bytes. This is the number one file-upload bypass.download
gif-animated.gif2.4 KBThe animation case every static-image test misses. Catches thumbnailers that grab a black first frame, viewers that ignore frame delays, and pipelines that flatten to a single frame silently. Confirm your code reports frame count and honours the infinite-loop marker.download
jpeg-baseline.jpg2.8 KBThe single most common image format, and one this corpus can now generate rather than fake. Baseline (not progressive) with real DCT and Huffman coding, so decoders and thumbnailers get a genuine JPEG to chew on. Being lossy, its pixels are close-but-not-identical to the PNG twin - useful for testing perceptual-diff thresholds.download
tiff-rgb-be.tif27.2 KBByte-order handling. TIFF is the mainstream format that can arrive in either endianness, and readers that assume little-endian silently misread every width, height and offset in the file.download
tiff-rgb-le.tif27.2 KBScanning, OCR and print pipelines, where TIFF is still the interchange format. Uncompressed and single-strip, so it also exercises readers that only handle tiled or compressed TIFFs.download
bmp-24bit.bmp48.1 KBDecoders that ignore the negative-height convention and render BMPs vertically flipped. Also a size sanity check: uncompressed BMP is far larger than its PNG twin.download

Every file is generated from source — no third-party copyright — and each has its own page with a published SHA-256 you can verify after download.

Questions

Where can I download a sample WEBP file?

Two below, both lossless VP8L and both 32 bytes: a flat 96x96 and a 1x1 with a half-transparent pixel. WEBP is worth testing separately because it is a RIFF container, so it begins with the ASCII "RIFF" exactly like a WAV file does and the format name sits four bytes further in. Signature checks that read only the first four bytes get it wrong.

Where can I download a sample TIFF file?

There are two below: one little-endian (II) and one big-endian (MM). TIFF is the only common image format that can be written in either byte order, and a decoder that assumes one of them will read garbage from the other. Both are baseline uncompressed RGB and open in Pillow, ImageMagick and Preview.

Where can I download an animated GIF sample?

The 4-frame looping animated GIF below is generated from source, so it carries no third-party copyright.

Why is SVG a security risk?

SVG is XML and can contain <script>. Serving a user-uploaded SVG from your own origin as image/svg+xml is stored XSS. The SVG-with-script file lets you verify your handling.

What is a polyglot file?

A file that is valid as two formats at once. The GIF/HTML polyglot below is simultaneously a working image and a working HTML page — it defeats validators that check only one of the two.

Other formats

Sample JSON fileSample PDF fileSample ZIP fileSample PNG fileSample XLS and XLSX (Excel) filesSample DOCX (Word) fileSample TXT and encoding test filesSample XML file