aktuelle Webcambild mit festem Namen und mit eigenem Logo

Ich habe mir ein PHP Script gebastelt, um das aktuelle Webcambild (mit festem Dateinamen) anzeigen zu lassen. Meine Bilder sind nach Datum auf dem FTP Server abgespeichert. Das funktioniert soweit Dank guter Beispiele hier im Forum.

Nun möchte ich auf dem Webcambild ein Logo einbinden. Das soll jedoch NICHT einfach mit HTML über das Bild gelegt werden, sondern soll fest in das Bild als Grafik eingebunden sein. Wie kann ich das machen???

Hier mein aktueller PHP-Code:

<?php

$_folder_name = "webcam"; // Ordnername fuer Webcambilder
$_name_last_picture = "webcambild.jpg"; // fester Name fuer aktuelles Webcambild
$_script_path_separator = "contao"; // Trenner um Speicherpfad webcambilder aus Scriptpfad zu ermitteln

$path = strstr($_SERVER['SCRIPT_FILENAME'], $_script_path_separator, true); // Pfad Webcambilder aus Scriptpfad bilden
$heute = date("Ymd"); // Datumstring für heute festlegen

// Pfad für das aktuelle Webcambild auf dem FTP Server zusammensetzen
$bild = $path . $_folder_name . "/" . $heute . "/" . "images" . "/" . $_name_last_picture ;

header("Content-type: image/jpg"); // nun sagen wir dem Browser, dass er eine JPG-Datei erhält
readfile($bild); // nun gibt PHP die Datei als JPG an den Browser

?>

Hier mein PHP Script mit dem ich mein Webcambild mit einem eigenen Text und einem Logo versehe:

<?php
// aktuellstes Webcambild einer INSTAR Kamera aus einem Ordner ermitteln, mit einem Logo 
// versehen und dem Browser als JPG übergeben
//
// hier die eigenen Parameter einstellen
$_folder_name = "/scheuermatthof_de/webcambilder/scheuermattwiese"; // Ordnername fuer die Webcambilder mit Datum Unterordner, ausgehend vom Root Verzeichnis
// $_fixed_filename = "scheuermattwiese.jpg"; // falls Verwendung eines fixen Dateinamens fuer aktuelles Webcambild
$_fixed_filename = false;  // false wenn die neuste Datei gesucht werden soll, ansonst den festen Dateinamen angeben
$_logo_path = "/scheuermatthof_de/contao/webcam"; // Pfad zum Logo
$_logo_name = "scheuermatthof-300.jpg"; // Dateiname des Logos im JPG Format
// $_logo_name = false; // false setzten, wenn kein Logo auf Bild soll, ansonsten Dateinamen angeben
$_text = "Buchung & Infos unter www.scheuermatthof.de"; // Text der oben mittig aufs Bild soll
// $_text = false; // false setzten, wenn kein Text aufs Bild soll


// hier geht es mit dem Verarbeiten los - keine Änderungen danach durchführen
$logo = $_SERVER['DOCUMENT_ROOT'] . $_logo_path . "/" . $_logo_name ;

// festen Dateinamen benutzten oder die neuste Datei ermitteln
if ($fixed_filename) { // fester Dateiname für aktuellstes Bild des Tages auswählen
    $bild = $_SERVER['DOCUMENT_ROOT'] . $_folder_name . "/" . date("Ymd") . "/images/" . $_fixed_filename ;
} else {     // neuste Datei im Ordner finden
    $dir  = $_SERVER['DOCUMENT_ROOT'] . $_folder_name . "/" . date("Ymd") . "/images/";
    $images = glob($dir . "*.jpg");
    rsort($images);
    // ACHTUNG: es wird nach den Dateinamen absteigend sortiert. D.h bei Instar fangen alle geplanten
    // Aufnahmen mit dem Buchstaben P an. Wenn sich eine sonstige Datei mit einem Buchstaben nach dem P 
    // in dem Ordner befindet wird diese Datei ausgegeben!
    $bild = $images[0];
}

$dest = imagecreatefromjpeg($bild);

// Logo mit Bild verschmelzen oder nicht?
if ($_logo_name) {
    // Bilder für Mergefunktion vorbereiten
    $logofile = imagecreatefromjpeg($logo);
    imagecopymerge($dest, $logofile, 1610, 907, 0, 0, 300, 163, 75);     // Bild mit Logo verschmelzen
    // hier eventuell Position und Größe des Logos anpassen !!!
};

// Text aufs Bild?
if ($_text) {
    $im = imagecreatetruecolor(600, 40);    // Bildfläche für Text erzeugen
    $white = imagecolorallocate($dest, 255, 255, 255);
    $black = imagecolorallocate($dest, 0, 0, 0);
    imagefilledrectangle($im, 0, 0, 600, 40, $black);  // Bildfläche mit Rechteck füllen
    $font = $_SERVER["DOCUMENT_ROOT"] . "/fonts/arial.ttf";
    imagettftext($im, 20, 0, 6, 26, $white, $font, $_text);  // Text auf Bildfläche schreiben
    imagecopymerge($dest, $im, 670, 00, 0, 0, 580, 36, 40);     // Webcambild mit Textbild verschmelzen
};

// Daten als JPG Bild an den Browser übergeben
$ts = gmdate("D, d M Y H:i:s") . " GMT";
header("Expires: $ts");
header("Last-Modified: $ts");
header("Pragma: no-cache");
header("Cache-Control: no-cache, must-revalidate");
header("Content-type: image/jpeg"); // nun sagen wir dem Browser, dass er eine JPG-Datei erhält
// Das Bild ausgeben
imagejpeg($dest);

?>

Hallo, ein sehr interessantes Script…
Eine Frage hierzu:
Wo haben Sie das Script eingefügt? Ich betreibe eine WP-Seite und bin mir jetzt nicht sicher, wo ich das Script einfügen kann!?!
Besten Dank im Voraus für Ihre Rückantwort!
LG Karl

Du fügst in deiner WP Seite einfach das Script als Bild ein. Das Script liefert dann durch den entsprechenden Header dem Browser das Bild zurück.

Schau mal bei mir auf https://ferienhaus-schwarzwald-todtnauberg.de/webcam-scheuermattwiese-todtnauberg.html

Ansonsten in HTML in etwa:

<img src="/webcam/scheuermattwiese.php" alt="Scheuermattwiese" title="Blick auf die Scheuermattwiese/Skipiste in Todtnauberg (Livebild, alle 5 Minuten)">

Liebe Grüße

Okay, dann werde ich das mal so testen.
Danke Dir für die schnelle Rückantwort!
LG Karl