Následují kus kódu udělá přesně to, co je v nadpisu. Prakticky převede obrázek (jpg) do 256 barev, projde pixel po pixelu a zjistí jejich barvy. Pokud je bílá (s nějakou malou rezervou), tak se zaznamená. No a na konec se vypočte poměr vůči všem pixelům.
Před vlastní aplikací doporučuji, pokud je obrázek příliš velký, jeho zmenšení. Mělo by stačit v pohodě maximálně 1000px na delší stranu.
$tmp = imagecreatefromjpeg($file); $width = imagesX($tmp); $height = imagesY($tmp); $pixels = $width * $height; imagetruecolortopalette($tmp, false, 256); $white = 0; for ($i=0;$i<$height;$i++) { for ($j=0;$j<$width;$j++) { $rgb=imagecolorsforindex($tmp,imagecolorat($tmp,$j,$i)); if ($rgb['red']>=245 && $rgb['green']>=245 && $rgb['blue']>=245) { $white++; } } } $ratio = round($white/$pixels*100);