Webcams sind Hipp. Webcams sind schon hochinteressant, aber gerade, wenn sie autonom draußen funktionieren sollten, wirds knifflig. Klar, das Angebot ist da – ich hatte aber vor dieser Installation noch keine Erfahrung mit solchen Geräten.
Mein Vater hat mich nach den irren Schneefällen im Jänner/Februar angeschrieben und gesagt, eigentlich wäre so eine Webcam schon ein Hingucker – gerade in unserem Eck in Lech am Arlberg hat man schon ein schönes Bild zu bewundern. Also hab ich ihm ein paar Vorschläge auf Amazon rausgeholt, die den drei Kriterien entsprechen:
- WLAN-Anbindung
- Outdoor-Fest (sollte schon ein paar Minustemperaturen aushalten, wetterfest)
- Autonomes Bildermachen, hochladen auf externen Web-/FTP-Server
Ich muss ehrlich sagen, ich hab nicht genau gewusst, ob die Kameras, die ich ihm vorgeschlagen habe, ordentliche Kameras sind – da waren überall ein paar Schlagwörter dabei und ich hab einfach auf gut Glück welche rausgepickt. Blindflug pur. Entschieden hat er sich dann für eine IP-CAM von Hootoo, die wohl eher als Überwachungskamera gedacht ist – mit Bewegungsmelder, Nachtsicht und SMTP-Alarm-Service tun sich da schon ganz interessante Möglichkeiten auf. Die hat er dann auch am gleichen Abend gekauft, wie ich dann erfahren habe ;)
Das Ding lädt auf FTP hoch und nachdem ich das erfolgreich getestet habe, konnte es auch schon losgehen. Anfangs hatte ich noch Probleme mit der WLAN-Konnektivität, an der ich beinahe verzweifelt wäre – dabei braucht das Ding nur ein bisschen, bis es sich verbindet. Als die ersten Bilder auf meinem Webspace kam, hab ich auch schon die ersten paar Zeilen PHP zu Papier gebracht. Die Bilder sind alle mit einem Timestamp im Dateinamen versehen. Ich wollte an das Bild mit dem letzten Creation Date noch 1-2 Wasserzeichen und eine Textzeile dranhängen – damit man auch brav sieht, von welcher Webcam das Bild kommt.
Die Bilder werden schön in einem eigenen Ordner gespeichert, das macht das durchiterieren etwas leichter.
Im gesamten sieht der Code dann in etwa so aus:
1: <?php
2: $imgdir="./pictures/";
3:
4: $latestFile="";
5: $latestCTime=0;
6:
7: if ($handle = opendir($imgdir))
8: {
9: while (false !== ($file = readdir($handle)))
10: {
11: if ($file != "." && $file != "..")
12: {
13: $fp = fopen($imgdir.$file, "r");
14: // sammle Statistiken
15: $fstat = fstat($fp);
16: fclose($fp);
17:
18: if($fstat["ctime"] >= $latestCTime)
19: {
20: //Get latest file name
21: $latestFile=$file;
22: $latestCTime=$fstat["ctime"];
23: }
24: }
25: }
26: closedir($handle);
27: }
28:
29: header('Content-type: image/png');
30:
31: // Open watermark
32: $imgzeichen = imagecreatefrompng('wasserzeichen-1.png');
33: // Open Image
34: $imgsrc = imagecreatefromjpeg($imgdir.$latestFile);
35:
36: // Image information
37: $width = imagesx($imgsrc);
38: $height = imagesy($imgsrc);
39:
40: // Create empty image
41: $img = imagecreatetruecolor($width, $height);
42:
43: // Paste Webcam image as background
44: imagecopy($img, $imgsrc, 0, 0, 0, 0, $width, $height);
45:
46: // paste watermark in the right lower corner
47: imagecopy($img, $imgzeichen, $width-241, $height-50, 0, 0, 241, 50);
48:
49: //Create colors for text
50: $black = ImageColorAllocate ($img, 0, 0, 0);
51: $white = ImageColorAllocate ($img, 255, 255, 255);
52: $imgText="Willkommen - Welcome - BERGLAND APPARTEMENTS*** in Lech am Arlberg: ".date("d.m.Y H:i:s",$latestCTime);
53: //Line one
54: ImageTTFText($img, 10, 0, 3, 13, $white, "./font/AnticSlab-Regular.ttf",$imgText);
55: //Line two if necessary. Replace the fifth parameter with a multiple of 13
56: //ImageTTFText($img, 10, 0, 3, 26, $white, "./font/AnticSlab-Regular.ttf","");
57: // Show image directly
58: imagepng($img);
59:
60: // Free memory
61: imagedestroy($img);
62: ?>
1-2 Feinheiten sollten noch gemacht werden, gerade die Performance ist natürlich nicht überragend, wenn das Bild dann jedes Mal neu gezeichnet wird. Aber die Hauptarbeit ist getan und das Bild kann sich sehen lassen – die Kamera macht ganz ordentliche Bilder!
Letzter Senf