Digitale + Analoge datum/klok in afbeelding
Dit is mijn eerste script dat ik publiceer, ik heb geprobeerd alles er zo duidelijk mogelijk bij te zetten.
Het gaat hier voornamelijk om de analoge klok, eventueel kun je je eigen achtergrondafbeelding zo aanpassen dat er ook cijfers op de wijzerplaat staan.
Opbouwende kritiek is altijd welkom.
Voorbeeld: http://leds24.nl/klok.php
Gesponsorde koppelingen
PHP script bestanden
20 reacties op 'Digitale + Analoge datum/klok in afbeelding'
Gesponsorde koppelingen
@ Jezpur
Ik zeg niet dat je ongelijk hebt, absoluut niet. Maar denk er toch even bij dat een pc binair rekent. Een pc heeft op een andere manier last van afrondingen dan wij (die decimaal rekenen).
Wat er in decimale notatie eenvoudig uit ziet, kan in binair vrij complex zijn.
bekijk bv. de getallen 0.3 en 0,0625. In binaire notatie is 0,0625 een veel simpeler getal dan 0,3 , omdat het een deling is door een macht van 2. 0,3 is een deling door 10, dat is in binair veel lastiger.
Een float is sowieso een afronding.
Ik zeg niet dat je ongelijk hebt, absoluut niet. Maar denk er toch even bij dat een pc binair rekent. Een pc heeft op een andere manier last van afrondingen dan wij (die decimaal rekenen).
Wat er in decimale notatie eenvoudig uit ziet, kan in binair vrij complex zijn.
bekijk bv. de getallen 0.3 en 0,0625. In binaire notatie is 0,0625 een veel simpeler getal dan 0,3 , omdat het een deling is door een macht van 2. 0,3 is een deling door 10, dat is in binair veel lastiger.
Een float is sowieso een afronding.
Een refresh kun je makkelijk zelf inbouwen, ik heb dat bewust weggelaten om niet onnodig veel dataverkeer op mijn server te genereren.
Stel dat ik hem elke minuut zou verversen.
een plaatje is 90 kb, dit betekend dat je na 11 minuten 1 mb gedownload hebt. En als iemand hem dan zou gaan gebruiken, dan ben ik zo door mijn limiet heen.
Stel dat ik hem elke minuut zou verversen.
een plaatje is 90 kb, dit betekend dat je na 11 minuten 1 mb gedownload hebt. En als iemand hem dan zou gaan gebruiken, dan ben ik zo door mijn limiet heen.
Quote:
Wat is het voordeel dan van de laatste manier?
De eerste werkt toch ook?
De eerste werkt toch ook?
Ja, maar is niet netjes en niet overzichtelijk.
Quote:
Ik zeg niet dat je ongelijk hebt, absoluut niet. Maar denk er toch even bij dat een pc binair rekent. Een pc heeft op een andere manier last van afrondingen dan wij (die decimaal rekenen).
Wat er in decimale notatie eenvoudig uit ziet, kan in binair vrij complex zijn.
bekijk bv. de getallen 0.3 en 0,0625. In binaire notatie is 0,0625 een veel simpeler getal dan 0,3 , omdat het een deling is door een macht van 2. 0,3 is een deling door 10, dat is in binair veel lastiger.
Een float is sowieso een afronding.
Wat er in decimale notatie eenvoudig uit ziet, kan in binair vrij complex zijn.
bekijk bv. de getallen 0.3 en 0,0625. In binaire notatie is 0,0625 een veel simpeler getal dan 0,3 , omdat het een deling is door een macht van 2. 0,3 is een deling door 10, dat is in binair veel lastiger.
Een float is sowieso een afronding.
Kan wel zo zijn, maar voor de berekening zelf lijkt mij dat 1.6666667 (onafgerond, dus oneindig) meer zegt dan 1.666666. Als je op je rekenmachine iets * 1.666666 intikt, krijg je een ander antwoord dan wanneer je iets * (5/3) intikt.
@Jezpur,
Het ging mij niet om de breuken, maar om het gebruik van " en '.
Ik zit nu ook het voordeel van het gebruik van hele breuken in.
@Johnny
Zou je de foutmelding hier kunnen plaatsen, dan kan ik kijken wat het kan zijn.
Ben je niet vergeten het lettertype in dezelfde map te zetten? of is image GD niet op je computer geïnstalleerd?
Het ging mij niet om de breuken, maar om het gebruik van " en '.
Ik zit nu ook het voordeel van het gebruik van hele breuken in.
@Johnny
Zou je de foutmelding hier kunnen plaatsen, dan kan ik kijken wat het kan zijn.
Ben je niet vergeten het lettertype in dezelfde map te zetten? of is image GD niet op je computer geïnstalleerd?
@Daan
ik heb het ook op een (betaalde) host geprobeerd,
en een foutmelding geeft hij niet in Fx (alleen dat het een verkeerde afbeelding is)
en in IE blijft hij oneindig laden... -.-"
ik heb het font in dezelfde map gezet idd
EIDT: IE is stuk op mijn pc (erger dan normaal)
dus heb nu ff
ik heb het ook op een (betaalde) host geprobeerd,
en een foutmelding geeft hij niet in Fx (alleen dat het een verkeerde afbeelding is)
en in IE blijft hij oneindig laden... -.-"
ik heb het font in dezelfde map gezet idd
EIDT: IE is stuk op mijn pc (erger dan normaal)
dus heb nu ff
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<br />
<b>Notice</b>: Use of undefined constant wday - assumed 'wday' in <b>C:\Documents and Settings\***\Mijn documenten\UsbWebserver\Root\avatar\index.php</b> on line <b>75</b><br />
<br />
<b>Notice</b>: Use of undefined constant mon - assumed 'mon' in <b>C:\Documents and Settings\***\Mijn documenten\UsbWebserver\Root\avatar\index.php</b> on line <b>76</b><br />
<br />
<b>Warning</b>: Wrong parameter count for imagefilledrectangle() in <b>C:\Documents and Settings\***\Mijn documenten\UsbWebserver\Root\avatar\index.php</b> on line <b>85</b><br />
<br />
<b>Notice</b>: Use of undefined constant H - assumed 'H' in <b>C:\Documents and Settings\***\Mijn documenten\UsbWebserver\Root\avatar\index.php</b> on line <b>89</b><br />
<br />
<b>Notice</b>: Use of undefined constant wday - assumed 'wday' in <b>C:\Documents and Settings\***\Mijn documenten\UsbWebserver\Root\avatar\index.php</b> on line <b>75</b><br />
<br />
<b>Notice</b>: Use of undefined constant mon - assumed 'mon' in <b>C:\Documents and Settings\***\Mijn documenten\UsbWebserver\Root\avatar\index.php</b> on line <b>76</b><br />
<br />
<b>Warning</b>: Wrong parameter count for imagefilledrectangle() in <b>C:\Documents and Settings\***\Mijn documenten\UsbWebserver\Root\avatar\index.php</b> on line <b>85</b><br />
<br />
<b>Notice</b>: Use of undefined constant H - assumed 'H' in <b>C:\Documents and Settings\***\Mijn documenten\UsbWebserver\Root\avatar\index.php</b> on line <b>89</b><br />
<br />
@ Johnny
Op jouw server werkt het blijkbaar niet om de weekdag d.m.v. wday uit getdate() op te halen. Dan zou je hier bijvoorbeeld date(N) en date(m) voor moeten gebruiken.
imagefilledrectangle() kun je weghalen, ik weet niet waarom die er bij staat, zonder werkt hij ook. Die stond er nog bij omdat ik een ander script gebruikt heb.
Waarom $H niet gedefinieerd is, zou ik echt niet weten. Die wordt op exact dezelfde manier als $i benoemd. En daar komt geen foutmelding uit.
Welke versie van PHP gebruik je?
@Roel
Ja dat kan, dan moet je het volgende erbij zetten:
Op jouw server werkt het blijkbaar niet om de weekdag d.m.v. wday uit getdate() op te halen. Dan zou je hier bijvoorbeeld date(N) en date(m) voor moeten gebruiken.
imagefilledrectangle() kun je weghalen, ik weet niet waarom die er bij staat, zonder werkt hij ook. Die stond er nog bij omdat ik een ander script gebruikt heb.
Waarom $H niet gedefinieerd is, zou ik echt niet weten. Die wordt op exact dezelfde manier als $i benoemd. En daar komt geen foutmelding uit.
Welke versie van PHP gebruik je?
@Roel
Ja dat kan, dan moet je het volgende erbij zetten:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
// Seconden ophalen
$s= date(s);
// Wijzertekst invullen
$text5 = "_ _ _ _";
// secondewijzer berekenen
$graden3 = $s * (5/3) * 0.01 * 360 - 90;
$graden3 = $graden3 - $graden3 - $graden3;
// secondewijzer invoegen
imagettftext($im, 20, $graden3, 500, 300, $white, $font, $text5);
?>
// Seconden ophalen
$s= date(s);
// Wijzertekst invullen
$text5 = "_ _ _ _";
// secondewijzer berekenen
$graden3 = $s * (5/3) * 0.01 * 360 - 90;
$graden3 = $graden3 - $graden3 - $graden3;
// secondewijzer invoegen
imagettftext($im, 20, $graden3, 500, 300, $white, $font, $text5);
?>
ik gebruik de nieuwste php,
ik heb nu dus dit script (alleen wijzers)
maar dan zegt hij dat hij het font niet gan vinden
terwijl hij wel in de map staat -.-"
overigens, imagefilledrectangle($im, 0, 0, 399, 29);
doet het niet omdat er geen kleur gedefineerd staat ;)
ik heb nu dus dit script (alleen wijzers)
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
// Zorgen dat de browser hem als afbeelding leest
header('Content-type: image/png');
// Achtergrondafbeelding kiezen
$im = @imagecreatefromjpeg('background.jpg');
// Kleuren toewijzen
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
// Teksten toewijzen
$s= date(s);
$H= date(H);
$i= date(i);
$secondenwijzer = "_ _ _ _";
$minutenwijzer = "...........";
$urenwijzer = "......";
// secondenwijzer berekenen
$graden3 = $s * (5/3) * 0.01 * 360 - 90;
$graden3 = $graden3 - $graden3 - $graden3;
// minutenwijzer (gradenhoek berekenen)
$graden = $i * (5/3) * 0.01 * 360 - 90;
$graden = $graden - $graden - $graden;
// urenwijzer (gradenhoek berekenen)
$graden2 = $H * (25/3) * 0.01 * 360 - 90;
$graden2 = $graden2 - $graden2 - $graden2;
// Urenwijzer ook minuutgevoelig maken.
$aanpassing = $graden / 12;
$graden2 = $graden2 + $aanpassing;
// Lettertype (moet in dezelfde map staan, anders werkt het niet)
$font = 'arial.ttf';
// Wijzers en teksten tekenen
imagettftext($im, 20, $graden, 500, 300, $white, $font, $urenwijzer);
imagettftext($im, 20, $graden2, 500, 300, $white, $font, $minutenwijzer);
imagettftext($im, 20, $graden3, 500, 300, $white, $font, $secondenwijzer);
// Het aanmaken en verwijderen van de afbeelding
imagepng($im);
imagedestroy($im);
?>
// Zorgen dat de browser hem als afbeelding leest
header('Content-type: image/png');
// Achtergrondafbeelding kiezen
$im = @imagecreatefromjpeg('background.jpg');
// Kleuren toewijzen
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
// Teksten toewijzen
$s= date(s);
$H= date(H);
$i= date(i);
$secondenwijzer = "_ _ _ _";
$minutenwijzer = "...........";
$urenwijzer = "......";
// secondenwijzer berekenen
$graden3 = $s * (5/3) * 0.01 * 360 - 90;
$graden3 = $graden3 - $graden3 - $graden3;
// minutenwijzer (gradenhoek berekenen)
$graden = $i * (5/3) * 0.01 * 360 - 90;
$graden = $graden - $graden - $graden;
// urenwijzer (gradenhoek berekenen)
$graden2 = $H * (25/3) * 0.01 * 360 - 90;
$graden2 = $graden2 - $graden2 - $graden2;
// Urenwijzer ook minuutgevoelig maken.
$aanpassing = $graden / 12;
$graden2 = $graden2 + $aanpassing;
// Lettertype (moet in dezelfde map staan, anders werkt het niet)
$font = 'arial.ttf';
// Wijzers en teksten tekenen
imagettftext($im, 20, $graden, 500, 300, $white, $font, $urenwijzer);
imagettftext($im, 20, $graden2, 500, 300, $white, $font, $minutenwijzer);
imagettftext($im, 20, $graden3, 500, 300, $white, $font, $secondenwijzer);
// Het aanmaken en verwijderen van de afbeelding
imagepng($im);
imagedestroy($im);
?>
maar dan zegt hij dat hij het font niet gan vinden
Code (php)
1
2
3
4
5
2
3
4
5
Warning: imagettftext() [function.imagettftext]: Could not find/open font in /storage/mijndomein/users/***/public/sites/***/avatar/index.php on line 40
Warning: imagettftext() [function.imagettftext]: Could not find/open font in /storage/mijndomein/users/***/public/sites/***/avatar/index.php on line 41
Warning: imagettftext() [function.imagettftext]: Could not find/open font in /storage/mijndomein/users/***/public/sites/***/avatar/index.php on line 42
Warning: imagettftext() [function.imagettftext]: Could not find/open font in /storage/mijndomein/users/***/public/sites/***/avatar/index.php on line 41
Warning: imagettftext() [function.imagettftext]: Could not find/open font in /storage/mijndomein/users/***/public/sites/***/avatar/index.php on line 42
terwijl hij wel in de map staat -.-"
overigens, imagefilledrectangle($im, 0, 0, 399, 29);
doet het niet omdat er geen kleur gedefineerd staat ;)
Leuk scriptje
Voorbeeldje hoe het een stuk beter en korter kan:
Voorbeeldje hoe het een stuk beter en korter kan:
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
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
<?php
// Zorgen dat de browser hem als afbeelding leest
header('Content-type: image/png');
// Nederlandse datum berekenen
// Achtergrondafbeelding kiezen
$im = imagecreatefromjpeg('background.jpg');
// Kleuren toewijzen
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
setlocale(LC_ALL, 'nld_nld');
// Teksten toewijzen
$text = strftime('%A %d %B, %Y',time());
$text2 = strftime('%H:%M',time());
$sWijzer = "...........";
$sWijzer2 = "......";
// minutenwijzer (gradenhoek berekenen)
$graden = date('i') * (5/3) * 0.01 * 360 - 90;
$graden = $graden - $graden - $graden;
// urenwijzer (gradenhoek berekenen)
$graden2 = date('H') * (25/3) * 0.01 * 360 - 90;
$graden2 = $graden2 - $graden2 - $graden2;
// Urenwijzer ook minuutgevoelig maken.
$aanpassing = $graden / 12;
$graden2 = $graden2 + $aanpassing;
// Lettertype (moet in dezelfde map staan, anders werkt het niet)
$font = 'arial.ttf';
// Wijzers en teksten tekenen
imagettftext($im, 20, -45, 10, 20, $white, $font, $text);
imagettftext($im, 20, 45, 200, 350, $white, $font, $text2);
imagettftext($im, 20, $graden, 500, 300, $white, $font, $sWijzer);
imagettftext($im, 20, $graden2, 500, 300, $white, $font, $sWijzer2);
// Het aanmaken en verwijderen van de afbeelding
imagepng($im);
imagedestroy($im);
?>
// Zorgen dat de browser hem als afbeelding leest
header('Content-type: image/png');
// Nederlandse datum berekenen
// Achtergrondafbeelding kiezen
$im = imagecreatefromjpeg('background.jpg');
// Kleuren toewijzen
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
setlocale(LC_ALL, 'nld_nld');
// Teksten toewijzen
$text = strftime('%A %d %B, %Y',time());
$text2 = strftime('%H:%M',time());
$sWijzer = "...........";
$sWijzer2 = "......";
// minutenwijzer (gradenhoek berekenen)
$graden = date('i') * (5/3) * 0.01 * 360 - 90;
$graden = $graden - $graden - $graden;
// urenwijzer (gradenhoek berekenen)
$graden2 = date('H') * (25/3) * 0.01 * 360 - 90;
$graden2 = $graden2 - $graden2 - $graden2;
// Urenwijzer ook minuutgevoelig maken.
$aanpassing = $graden / 12;
$graden2 = $graden2 + $aanpassing;
// Lettertype (moet in dezelfde map staan, anders werkt het niet)
$font = 'arial.ttf';
// Wijzers en teksten tekenen
imagettftext($im, 20, -45, 10, 20, $white, $font, $text);
imagettftext($im, 20, 45, 200, 350, $white, $font, $text2);
imagettftext($im, 20, $graden, 500, 300, $white, $font, $sWijzer);
imagettftext($im, 20, $graden2, 500, 300, $white, $font, $sWijzer2);
// Het aanmaken en verwijderen van de afbeelding
imagepng($im);
imagedestroy($im);
?>
Om te reageren heb je een account nodig en je moet ingelogd zijn.
- Details
Door:
Daan Onbekend- 4 jaar geleden
- 2.047 x bekeken
- Labels
- Geen tags toegevoegd.
- PHP scripts opties
- Image manipulation
- Nieuwste PHP scripts
- PHP script toevoegen


PHP hulp
0 seconden vanaf nu