01 <?php
02
03 $width = 210;
04 $height = 210;
05
06 if(isset($_GET['doit']))
07 {
08 $font = 'path/to/the/font_file.ttf';
09 $fontsize = 12;
10 $smfontsize = 8;
11
12 /*---------------------------------------------*/
13
14 $array['hour'] = 0-(date('h')*30)-270;
15 $array['min'] = 0-(date('i')*6)-270;
16 $array['sec'] = 0-(date('s')*6)-270;
17
18 /*---------------------------------------------*/
19
20 function roundedcorners(&$im,$x1,$y1,$x2,$y2,$radius,$color)
21 {
22 imagefilledrectangle($im,$x1+$radius,$y1,$x2-$radius,$y2,$color);
23 imagefilledrectangle($im,$x1,$y1+$radius,$x2,$y2-$radius,$color);
24 imagefilledellipse($im,$x1+$radius,$y1+$radius,$radius*2,$radius*2,$color);
25 imagefilledellipse($im,$x2-$radius,$y1+$radius,$radius*2,$radius*2,$color);
26 imagefilledellipse($im,$x1+$radius,$y2-$radius,$radius*2,$radius*2,$color);
27 imagefilledellipse($im,$x2-$radius,$y2-$radius,$radius*2,$radius*2,$color);
28 }
29
30 $img = imagecreatetruecolor($width,$height);
31 $white = ImageColorAllocate ($img,255,255,255);
32 $black = ImageColorAllocate ($img,0,0,0);
33 $gray = ImageColorAllocate ($img,250,252,255);
34 $gray2 = ImageColorAllocate ($img,200,210,215);
35 $blue = ImageColorAllocate ($img,80,90,95);
36 roundedcorners(&$img,1,1,$width-3,$height-3,10,$blue);
37 roundedcorners(&$img,3,3,$width-1,$height-1,10,$gray2);
38 roundedcorners(&$img,2,2,$width-2,$height-2,10,$white);
39 roundedcorners(&$img,4,4,$width-4,$height-4,10,$gray);
40 imagecolortransparent($img,$black);
41
42 imagettftext($img,$fontsize,0,($width/2)-14,21,$gray2,$font,12);
43 imagettftext($img,$fontsize,0,($width/2)-12,23,$blue,$font,12);
44 imagettftext($img,$fontsize,0,($width/2)-13,22,$white,$font,12);
45
46 imagettftext($img,$fontsize,0,$width-23,($height/2)-6,$gray2,$font,3);
47 imagettftext($img,$fontsize,0,$width-21,($height/2)-4,$blue,$font,3);
48 imagettftext($img,$fontsize,0,$width-22,($height/2)-5,$white,$font,3);
49
50 imagettftext($img,$fontsize,0,($width/2)-8,$height-12,$gray2,$font,6);
51 imagettftext($img,$fontsize,0,($width/2)-6,$height-10,$blue,$font,6);
52 imagettftext($img,$fontsize,0,($width/2)-7,$height-11,$white,$font,6);
53
54 imagettftext($img,$fontsize,0,11,($height/2)-6,$gray2,$font,9);
55 imagettftext($img,$fontsize,0,13,($height/2)-4,$blue,$font,9);
56 imagettftext($img,$fontsize,0,12,($height/2)-5,$white,$font,9);
57
58 roundedcorners($img,($width/2)-10,($height/2)-12,($width/2)+4,($height/2),5,$gray2);
59 roundedcorners($img,($width/2)-8,($height/2)-10,($width/2)+6,($height/2)+2,5,$blue);
60 roundedcorners($img,($width/2)-9,($height/2)-11,($width/2)+5,($height/2)+1,5,$white);
61
62 $hstr = '. '.date('h').' hours';
63
64 imagettftext($img,$smfontsize,$array['hour'],($width/2)-1,($height/2)-2,$blue,$font,$hstr);
65 imagettftext($img,$smfontsize,$array['hour'],($width/2)-3,($height/2)-4,$gray2,$font,$hstr);
66 imagettftext($img,$smfontsize,$array['hour'],($width/2)-2,($height/2)-3,$white,$font,$hstr);
67
68 $mstr = '. '.date('i').' minutes';
69
70 imagettftext($img,$smfontsize,$array['min'],($width/2)-1,($height/2)-2,$blue,$font,$mstr);
71 imagettftext($img,$smfontsize,$array['min'],($width/2)-3,($height/2)-4,$gray2,$font,$mstr);
72 imagettftext($img,$smfontsize,$array['min'],($width/2)-2,($height/2)-3,$white,$font,$mstr);
73
74 $sstr = '. '.date('s').' seconds';
75
76 imagettftext($img,$smfontsize,$array['sec'],($width/2)-1,($height/2)-2,$blue,$font,$sstr);
77 imagettftext($img,$smfontsize,$array['sec'],($width/2)-3,($height/2)-4,$gray2,$font,$sstr);
78 imagettftext($img,$smfontsize,$array['sec'],($width/2)-2,($height/2)-3,$white,$font,$sstr);
79
80 header('Content-type: image/png');
81 imagepng($img);
82 imagedestroy($img);
83 }else{
84 echo '
85 <img name="clock" src="'.$_SERVER['PHP_SELF'].'?doit=yes" width="'.$width.'" height="'.$height.'" />
86
87 <script type="text/javascript"><!--
88 function Animation()
89 {
90 document.clock.src = "'.$_SERVER['PHP_SELF'].'?doit="+new Date();
91 window.setTimeout("Animation()",1000);
92 }
93 window.setTimeout("Animation()",1000);
94 //--></script>';
95
96 }
97
98 ?>