<?php
$img = "images/caption_1.gif";                        //foto ophalen
$imgHand = ImageCreateFromGIF($img);         // handle voor foto
$imgSize = GetImageSize($img);                     // foto grootte
$imgWidth = $imgSize[0];                                 // breedte en hoogte
$imgHeight = $imgSize[1]; 
//echo '<img src="'.$img.'"><br><br>';
// foto vergroot weergeven (met tabel)
echo '<table cellspacing=0 cellpadding=0>';
for ($l = 0; $l < $imgHeight; $l++) { 
    echo '<tr>'; 
    for ($c = 0; $c < $imgWidth; $c++) { 
        $pxlCor = ImageColorAt($imgHand,$c,$l); // pixelkleur ophalen
        $pxlCorArr = ImageColorsForIndex($imgHand, $pxlCor);
        // kleuren omzetten naar 16 grijswaarden
            $htmlCor = DecHex($pxlCorArr["red"]&240) . DecHex($pxlCorArr["red"]&240) . DecHex($pxlCorArr["red"]&240);
        // teller bijhouden voor elke grijswaarde
            $grey[convert($htmlCor)/16]++;
        // tabel cell met als kleur de berekende grijswaarde            
            echo '<td bgcolor="#'.$htmlCor.'" width="3px" height="3px"></td>';
    }
    echo '</tr>';
}
echo '</table><br>';

// alle grijswaarden laten zien, van donker naar licht
for ($i=0;$i<16;$i++){
    echo 'grijswaarde '.$i.' : '.$grey[$i].'<br>';
}
echo '<br><br>Status: <b>'.status(count($grey)).'</b><br>';
// functies                        
function convert($color){
    $hexdec=HexDec($color)&240; // kleur omzetten naar hexadecimale waarden (4bits)
    $decbin=DecBin($hexdec); // omzetten naar binair
    $decbin = substr("00000000",0,8 - strlen($decbin)) . $decbin; // verloopnullen bijvoegen tot 8bit
    $bindec = BinDec($decbin); // terug omzetten naar decimale waarde
    return $bindec;        // nu hebben we een getal (grijswaarde) tussen 0 en 15
}

// status 
function status($range){
    if ($range >= 13) return "zwaar bewolkt";
    elseif ($range > 9 && $range < 13) return "bewolkt";
    elseif ($range > 4 && $range <=9) return "licht bewolkt";
    elseif ($range <= 4) return "helder";
} 
?>