Bin mir sicher ihr könnt mir hier helfen!
Betreibe just for fun eine Webcam und zeige immer das aktuellste Bild, natürlich überlagert mit meinem Logo auf der Webseite an.
Irgendwie ist in dem Script noch eine Unreinheit, da ab und zu ein falsches Bild gewählt wird. (sieht man wenn die Sonne beim gefolgten Bild wieder zurück geht oder wieder einmal ein Bild von der Nacht angezeigt wird).
Die Fotos werden alle 10 Minuten via ftp auf den Server hochgeladen (siehe Screenshot).
Danach sollten Fotos die ein gewisses alter überschritten haben gelöscht werden, da das script sonst ewig läuft und die Seite bremsen.
(momentan werden diese noch manuell gelöscht).
Hier das Script:
get_header();
global $shopera_site_width;
use WeatherStation\Data\Output;
use WeatherStation\SDK\Clientraw\Plugin\StationCollector;
?>
<div class="content_section inner_page wettercam_page">
<?php while ( have_posts() ) : the_post(); ?>
<header class="h1">
<h1><?php echo the_title(); ?></h1>
<hr />
</header>
<div class="container content_inner">
<?php
function getLatestImage() {
ini_set("gd.jpeg_ignore_warning", 1);
$folderName = 'wetter/incomming/';
$imageEnding = '.jpg';
$newest_mtime = 0;
$base_url = ABSPATH.$folderName;
$file_ending = $imageEnding;
$show_file_old = 'images/folio/no-image.jpg';
$show_file = 'images/folio/no-image.jpg';
if ($handle = opendir($base_url)) {
while (false !== ($latestFile = readdir($handle))) {
if (($latestFile != '.') && ($latestFile != '..') && ($latestFile != '.htaccess') && (strpos($latestFile, $file_ending))) {
$mtime = filemtime("$base_url/$latestFile");
if ($mtime > $newest_mtime) {
$newest_mtime = $mtime;
$show_file_old = $show_file;
$show_file = "$latestFile";
}
}
}
}
$imageUrl = ABSPATH ."/cam_mit_logo.jpg";
$logoUrl = ABSPATH . "/wetter/logo_klein.png";
$im = @imagecreatefromjpeg("$base_url/$show_file_old");
$cam_image = imagecreatefrompng($logoUrl);
$xLogo = imagesx($cam_image);
$yLogo = imagesy($cam_image);
$xCam = imagesx($im);
$yCam = imagesy($im);
imagecopy($im, $cam_image, $xCam-$xLogo-50, $yCam-$yLogo-50, 0, 0, $xLogo, $yLogo);
imagedestroy($cam_image);
imagejpeg($im, $imageUrl);
imagedestroy($im);
return "/cam_mit_logo.jpg";
}
echo '<img src="'.getLatestImage().'" alt="Latest from the web" class="wettercam_image"></img>';
?>
<?php the_content(); ?>
</div>
<?php endwhile; ?>
</div><!-- .content_section -->
<?php
get_footer();
Vielen Dank im Voraus!
Betreibe just for fun eine Webcam und zeige immer das aktuellste Bild, natürlich überlagert mit meinem Logo auf der Webseite an.
Irgendwie ist in dem Script noch eine Unreinheit, da ab und zu ein falsches Bild gewählt wird. (sieht man wenn die Sonne beim gefolgten Bild wieder zurück geht oder wieder einmal ein Bild von der Nacht angezeigt wird).
Die Fotos werden alle 10 Minuten via ftp auf den Server hochgeladen (siehe Screenshot).
Danach sollten Fotos die ein gewisses alter überschritten haben gelöscht werden, da das script sonst ewig läuft und die Seite bremsen.
(momentan werden diese noch manuell gelöscht).
Hier das Script:
get_header();
global $shopera_site_width;
use WeatherStation\Data\Output;
use WeatherStation\SDK\Clientraw\Plugin\StationCollector;
?>
<div class="content_section inner_page wettercam_page">
<?php while ( have_posts() ) : the_post(); ?>
<header class="h1">
<h1><?php echo the_title(); ?></h1>
<hr />
</header>
<div class="container content_inner">
<?php
function getLatestImage() {
ini_set("gd.jpeg_ignore_warning", 1);
$folderName = 'wetter/incomming/';
$imageEnding = '.jpg';
$newest_mtime = 0;
$base_url = ABSPATH.$folderName;
$file_ending = $imageEnding;
$show_file_old = 'images/folio/no-image.jpg';
$show_file = 'images/folio/no-image.jpg';
if ($handle = opendir($base_url)) {
while (false !== ($latestFile = readdir($handle))) {
if (($latestFile != '.') && ($latestFile != '..') && ($latestFile != '.htaccess') && (strpos($latestFile, $file_ending))) {
$mtime = filemtime("$base_url/$latestFile");
if ($mtime > $newest_mtime) {
$newest_mtime = $mtime;
$show_file_old = $show_file;
$show_file = "$latestFile";
}
}
}
}
$imageUrl = ABSPATH ."/cam_mit_logo.jpg";
$logoUrl = ABSPATH . "/wetter/logo_klein.png";
$im = @imagecreatefromjpeg("$base_url/$show_file_old");
$cam_image = imagecreatefrompng($logoUrl);
$xLogo = imagesx($cam_image);
$yLogo = imagesy($cam_image);
$xCam = imagesx($im);
$yCam = imagesy($im);
imagecopy($im, $cam_image, $xCam-$xLogo-50, $yCam-$yLogo-50, 0, 0, $xLogo, $yLogo);
imagedestroy($cam_image);
imagejpeg($im, $imageUrl);
imagedestroy($im);
return "/cam_mit_logo.jpg";
}
echo '<img src="'.getLatestImage().'" alt="Latest from the web" class="wettercam_image"></img>';
?>
<?php the_content(); ?>
</div>
<?php endwhile; ?>
</div><!-- .content_section -->
<?php
get_footer();
Vielen Dank im Voraus!
Kommentar