Auswahl des immer aktuellsten (Webcam) Fotos

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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!
    Attached Files

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

    Comment

    Working...
    X