Bild
Herzlich willkommmen in diesem Forum.....

Meine Gartencam

Antworten
Benutzeravatar
dirkbanze
Site Admin
Beiträge: 15
Registriert: 03 Feb 2019, 12:48
Wohnort: Sinzig
Kontaktdaten:

Meine Gartencam

Beitrag von dirkbanze » 13 Feb 2019, 12:37

Gartencam.jpg
Gartencam.jpg (91.33 KiB) 13005 mal betrachtet
Es handelt sich um eine Foscam FI8905 kompatible Cam

Link zum aktuellen Standbild: Meine Gartencam

___________________________________________________________________________________________

Einbau in eine Webseite als Live Video:

<p><strong>&nbsp;Garten live</strong></p>
<p><img name="GartenCam" src="http://IP der Webcam:Port/videostream.cgi?user=none&amp;pwd=none" width="640" height="480" alt="Live Feed" style="background-color: #009999" /></p>
_____________________________________________________________________________________________
PHP Script zum Einbau eines Standbildes in eine Webseite:

<?php
/* Auslesen eines Einzelbildes aus der IP-Kamera 7Links, PX-3309.
=================================================================
Autor: Stefan Meisel
Datum: 30.03.2010

Systemvoraussetzungen:
----------------------
- Web-Server mit PHP und den Modulen CURL und GD.
- Die konfigurierte IP-Kamera 7Links, PX-3309, erreichbar unter einer öffentlichen URL.

Hinweise zum Setup:
-------------------
- Die öffentliche URL der Kamera muss der Variablen $url übergeben werden.
- In der Kamera muss ein Benutzerkonto aus der Gruppe "Visitor" definiert sein. Die Zugangsdaten müssen
der Variablen $credentials nach dem Schema "benutzer:passwort" übergeben werden.
- Optional kann das Programm einen Bild-Titel und die Uhrzeit einstempeln.
Hierzu können die entsprechenden Parameter für den Text das Datumsformat, die Optionen für Positionen, Größe
Farbe usw. - s. dort - gesetzt werden. Wenn nicht gewünscht, leer lassen ($title = "";).
- Es kann auch je ein TrueType-Font für die Schriftart hinterlegt werden.
*/

# Voreinstellungen:
// URL der Kamera und Zugangsdaten:
$url = "http://ip der Cam:Port/snapshot.cgi";
$credentials = "none:none";



// Weitere Parameter:
$imgwidth = "640"; // Breite des Bildes in Pixel (für Fehlerseite)
$imgheight = "480"; // Höhe des Bildes in Pixel (für Fehlerseite)
$errorText = "Die Webcam ist im Moment leider nicht verfügbar."; // Fehlertext
$errorTextPositionX = 4; // In Prozent von links
$errorTextPositionY = 95; // In Prozent von oben
$errorBackgroundColor['r'] = "0"; // Rotanteil der Hintergrundfarbe bei Fehlerbild
$errorBackgroundColor['g'] = "0"; // Grünanteil der Hintergrundfarbe bei Fehlerbild
$errorBackgroundColor['b'] = "0"; // Blauteil der Hintergrundfarbe bei Fehlerbild


# Programmteil:

// erzeuge einen neuen cURL-Handle
$ch = curl_init();

// setze die URL und andere Optionen
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, $credentials);
curl_setopt($ch, CURLOPT_UNRESTRICTED_AUTH, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_REFERER, $referer);

// Hole die Daten von der URL:
$imgStream = curl_exec($ch);
// Schließe den cURL-Handle und gebe die Systemresourcen frei
curl_close($ch);

// HTML-Header senden:
header("Content-type: image/jpeg");

if (($title) or ($dateformat)) {
// Wenn Titel oder Datum gewünscht, diese ins Bild stempeln:
$image = @ImageCreateFromString($imgStream);
if ($image) {
$drawColor = ImageColorAllocate($image, $fontColor['r'], $fontColor['g'], $fontColor['b']);
if ($title) {
if ($titleFont) {
ImageTTFText($image, $titleSize, 0, $imgwidth * $titlePositionX / 100, $imgheight * $titlePositionY / 100, $drawColor, $titleFont, $title);
} else {
ImageString($image, 4, $imgwidth * $titlePositionX / 100, $imgheight * $titlePositionY / 100, $title, $drawColor);
}

}
if ($dateformat) {
if ($dateFont) {
ImageTTFText($image, $dateSize, 0, $imgwidth * $datePositionX / 100, $imgheight * $datePositionY / 100, $drawColor, $dateFont, date($dateformat));
} else {
ImageString($image, 4, $imgwidth * $datePositionX / 100, $imgheight * $datePositionY / 100, date($dateformat), $drawColor);
}
}
} else {
$error = true;
}
if ($error) {
$image = imageCreate($imgwidth, $imgheight);
$background_color = ImageColorAllocate($image, $errorBackgroundColor['r'], $errorBackgroundColor['g'], $errorBackgroundColor['b']);
$drawColor = ImageColorAllocate($image, $fontColor['r'], $fontColor['g'], $fontColor['b']);
if ($dateFont) {
ImageTTFText($image, $dateSize, 0, $imgwidth * $errorTextPositionX / 100, $imgheight * $errorTextPositionY / 100, $drawColor, $dateFont, $errorText);
} else {
ImageString($image, 4, $imgwidth * $errorTextPositionX / 100, $imgheight * $errorTextPositionY / 100, $errorText, $drawColor);
}
}
// Ausgabe des Bildes:
imagejpeg($image, "", 85);
} else {
// Weder Titel noch Datum - Bild direkt ausgeben
echo $imgStream;
}

?>
_______________________________________________________________________________________________

Dazu muss es einen User none mit Passwort none geben, der nur Beobachter sein darf, also keinesfalls hier einen User mit allen Rechten z.B. admin etc. eintragen... :!:
___________________________________________________________________________
Tippfehler sind nicht beabsichtigt, Ihr könnt sie aber behalten.....
Antworten