<?php
declare(strict_types=1);

$image = imagecreatetruecolor(16, 12);
imagepng($image, "upload.bin");
$file = "upload.bin";
$mime = (new finfo(FILEINFO_MIME_TYPE))->file($file);
$size = getimagesize($file);
if (filesize($file) > 100000 || $mime !== "image/png" || $size === false
    || $size[0] < 1 || $size[1] < 1 || $size[0] > 1000 || $size[1] > 1000
    || $size[0] * $size[1] > 500000) {
    throw new UnexpectedValueException("Image rejected");
}
$decoded = imagecreatefrompng($file);
if ($decoded === false) { throw new UnexpectedValueException("Decode failed"); }
echo imagesx($decoded), "x", imagesy($decoded), " accepted\n";
