Auswahl des immer aktuellsten (Webcam) Fotos

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Auswahl des immer aktuellsten (Webcam) Fotos

    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!
    Angehängte Dateien

  • #2
    Ungetestet:
    PHP-Code:
    <?php
        $tmp 
    glob(".jpg")
        
        
    $files = array();
        
        foreach(
    $tmp as $file)
           
    $files[filectime($file)] = $file;
           
        
    ksort($filesSORT_NUMERIC);
        
        
    $latest array_shift($files);
    ?>

    Kommentar

    Lädt...
    X