wolkenstatus
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
$img = "images/clouds2.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";
}
?>
$img = "images/clouds2.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";
}
?>