Estrarre ultima foto da cartelle

  • Creatore Discussione Creatore Discussione fedepas
  • Data di inizio Data di inizio

fedepas

Nuovo Utente
23 Ott 2020
2
0
1
Buonasera a tutti,
per il mio sito ho una fotocamera Reolink che scatta una foto ogni 5 minuti ed invia l'immagine via FTP al server.
La fotocamera è impostata per far si che ogni giorno si generi una nuova cartella nel server, con criterio anno/mese/giorno.
La mia necessità è di avere nella cartella principale /cam l'ultima immagine scattata dalla fotocamera.
All'interno di ogni anno/mese/giorno sono riuscito ad impostare un codice funzionante che riporto, ma non è quello che mi serve.
Questo è il link:
Come posso adattare il codice nella directory principale /cam?

Grazie in anticipo per chi vorrà aiutarmi.
Federico Pasquale
PHP:
<?php

    header("Refresh: 60; url=" . $_SERVER["PHP_SELF"]);

    // prepara l'array per i nomi dei file

    $directory = array();


    // prepara l'handler per la directory

    $handler = opendir('../23');


    // apre la directory e legge i singoli nomi dei file

    while ($file = readdir($handler)) {


    // se il nome del file contiene il testo iniziale imposto dalla ipcamera lo mette nell'array

      if (substr("$file", 0, 8) == "Cam_01_2") {

        $directory[] = $file;

      }


    }


    // chiude l'handler

    closedir($handler);


  // ordina la lista dei file per nome (il piu' nuovo sara' l'ultimo)

  sort($directory);


  //  conta i file

  $fileCount  = count($directory);

  $fileCount2 = $fileCount - 2;


  // copia il file piu' nuovo in webcam.jpg

  // $index corrispondera' all'ultimo elemento dell'array (il primo e' 0)

  $index = $fileCount - 2;     // era -1 modifica 24-07-2014

  $fileDaCopiare = $directory[$index];

  copy($fileDaCopiare, 'webcam.jpg');


// cancella tutti i file i cui nomi sono nell'array

  for($index=0; $index < $fileCount2; $index++) {

        $fileDaCancellare = $directory[$index];

      unlink($fileDaCancellare);

  }



$nome_immagine="webcam.jpg";         // file contenente l'immagine

$nome_testo="testo.txt";         // file contenente le scritte


$fp = fopen($nome_testo,"r")

  or die("impossibile aprire il file testo.txt.");

$testo_sinistra=fgets($fp,100);         // nella prima riga la scritta allineata a sinistra

$testo_destra=fgets($fp,100);         // nella seconda riga la scritta allineata a destra

if ( $testo_destra = "data" )

  {

  setlocale(LC_TIME,"it_IT");

  $testo_destra=strftime ("%a %d %b %Y %H:%M:%S", filemtime($fileDaCopiare)); //  era nome_immagine mod 28-07-2014

  }

fclose($fp);


header("Content-type: image/png");

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

header("Cache-Control: no-store, no-cache, must-revalidate");

header("Cache-Control: post-check=0, pre-check=0", false);

header("Pragma: no-cache");


$im  = imagecreatefromjpeg($nome_immagine);

//$black = imagecolorallocate($im, 0, 0, 0);

//$white = imagecolorallocate($im, 255, 255, 255);

$colore_barra = imagecolorallocate($im, 0, 0, 0);      // colore della barra formato RGB

$colore_testo  = imagecolorallocate($im, 255, 255, 255);   // idem per testo

$x=imagesx($im);

$y=imagesy($im);


$font = "VeraBd.ttf";

$size = 15;                     // dimensione del testo

$altezza_barra = 35;                  // dimensione della barra



imagefilledrectangle($im, 0, $y-$altezza_barra, $x-1, $y-1, $colore_barra);


$bbox = imagettfbbox ($size, 0, $font, $testo_sinistra);

$dy  = (($bbox[1] - $bbox[7]) / 2);

imagettftext($im, $size, 0, 5, $y-($altezza_barra / 2) + $dy - 1, $colore_testo, $font, $testo_sinistra);


$bbox = imagettfbbox ($size, 0, $font, $testo_destra);

$dx  = ($bbox[2] - $bbox[0]);

imagettftext($im, $size, 0, $x-5-$dx, $y-($altezza_barra / 2) + $dy - 1, $colore_testo, $font, $testo_destra);

imagepng($im);

imagedestroy($im);


?>
 
Ultima modifica di un moderatore:
@
fedepas
avviso.png
 

Discussioni simili