# ImageVerifier decisions (cap 8 MiB, 16,000,000 pixels, png/jpeg/webp) input verdict detail real PNG 64x48 ACCEPT image/png 64x48 real JPEG 64x48 ACCEPT image/jpeg 64x48 WebP header only (sniffed, not decoded) ACCEPT image/webp SVG with a script REJECT not-an-image: no known image signature in the first bytes HTML page REJECT not-an-image: no known image signature in the first bytes PDF REJECT not-an-image: no known image signature in the first bytes PNG signature + garbage REJECT undecodable: IIOException valid PNG + 40 bytes of HTML appended ACCEPT image/png 16x16 PNG header claiming 40000x40000 REJECT too-many-pixels: 40000x40000 = 1600000000 > cap 16000000 GIF (sniffed but not on the allow list) REJECT type-not-allowed: image/gif empty REJECT not-an-image: no known image signature in the first bytes 9 MB of PNG-looking zeros REJECT too-large: 9437184 bytes > cap 8388608