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);
?>