Risultati da 1 a 7 di 7

Visualizzazione Ibrida

Messaggio precedente Messaggio precedente   Nuovo messaggio Nuovo messaggio
  1. #1
    Vento fresco L'avatar di eremite
    Data Registrazione
    19/11/10
    Località
    nerola(rm)/453m slm
    Età
    29
    Messaggi
    2,653
    Menzionato
    0 Post(s)

    Predefinito Re: webcam.php per hikvision

    Ho provato questo script, ma sembra non funzioni, forse è sbagliata la cartella?
    Codice PHP:
    <?phpdate_default_timezone_set('Europe/Rome');// Funzione che ricava l'immagine più recente nella cartellafunction getwebcamimage($folder) {    if (is_dir($folder)) {        $images = glob($folder . '*.jpg'); // Trova tutti i file .jpg nella cartella        if (!empty($images)) {            $latestImage = max($images, FILEINFO_MTIME); // Trova l'immagine con la data di modifica più recente            return basename($latestImage); // Restituisce il nome dell'immagine più recente        }    }    return null; // Restituisce null se non ci sono immagini nella cartella}/* Indicare il percorso della cartella delle immagini rispetto al file corrente - DA MODIFICARE */$folder = "http://www.meteonerola.it/Nerola/";$imgnm = getwebcamimage($folder);?><img id="image" src="<?php echo $folder "/" $imgnm?>"><script type="text/javascript">/* Funzione che ottiene un array di valori data dal timestamp (in millisecondi) della nuova immagine */function getnewparamdate(tsimg) {    var newdate = new Date(tsimg);    var newyear = newdate.getFullYear();    var newmonth = ("0" + (newdate.getMonth() + 1)).slice(-2);    var newday = ("0" + newdate.getDate()).slice(-2);    var newhour = ("0" + newdate.getHours()).slice(-2);    var newmin = ("0" + newdate.getMinutes()).slice(-2);    var newsec = ("0" + newdate.getSeconds()).slice(-2);    var newpardate = new Array(newyear, newmonth, newday, newhour, newmin, newsec);    return newpardate;}/* Funzione che aggiorna l'immagine (se trovata) */function getnewimage(img, folder, newstr) {    var newimage = new Image();    newimage.src = folder + "/" + newstr;    newimage.onload = function () {        if (newimage.complete) img.src = newimage.src;    };}/* Funzione che ottiene un array di valori data della prima immagine passata dal php */function getparamdate() {    var imgnm = "<?php echo $imgnm?>";    var strtime = imgnm.slice(9, -4);    var year = strtime.substr(0, 4);    var month = strtime.substr(4, 2) - 1;    var day = strtime.substr(6, 2);    var hour = strtime.substr(-6, 2);    var min = strtime.substr(-4, 2);    var sec = strtime.substr(-2, 2);    var pardate = new Array(year, month, day, hour, min, sec);    return pardate;}var image = document.getElementById("image");var folder = "<?php echo $folder?>";var pardate = getparamdate();var date = new Date(pardate[0], pardate[1], pardate[2], pardate[3], pardate[4], pardate[5]);var tsimg = date.getTime();/* Funzione che aggiorna l'immagine con il nuovo nome del file */function refreshwebimage(step) {    tsimg += step;    var newpardate = getnewparamdate(tsimg);    var newstr = "Schedule_" + newpardate[0] + newpardate[1] + newpardate[2] + "-" + newpardate[3] +            newpardate[4] + newpardate[5] + ".jpg";    getnewimage(image, folder, newstr);}/* Intervallo di aggiornamento in millisecondi (esempio 10 sec) - MODIFICARE SE DESIDERATO */var stepms = 10000;var interv = setInterval(function () { refreshwebimage(stepms); }, stepms);</script>

  2. #2
    myMeteoNetwork Team L'avatar di Orso Polare
    Data Registrazione
    18/09/08
    Località
    Roma
    Età
    77
    Messaggi
    5,579
    Menzionato
    18 Post(s)

    Predefinito Re: webcam.php per hikvision

    Citazione Originariamente Scritto da eremite Visualizza Messaggio
    Ho provato questo script, ma sembra non funzioni, forse è sbagliata la cartella?
    Io uso il PHP di cui segue il codice e per il suo funzionamento è fondamentale che dentro la cartella dove giunge lo scatto, e devi essere sicuro che lo scatto ci arrivi.... debbono essere presenti anche i file testo.txt e il font VeraBd.ttf.
    Io uso Aruba e la cartella di destinazione dello scatto Hikvision, che è in prova e non pubblico sul mio sito, è semplicemente "hikvision"
    I file che ho nominato e altre info interessanti li puoi trovare sul mio link, non far caso al fatto che il tutorial è specifico per la Foscam.... molte cose sono concetti comuni.
    Il file testo.txt può essere fisso con un testo a tua scelta oppure dinamico tramite FTP con i dati meteo più importanti, la cosa fondamentale è che testo.txt sia presente e, chiaramente, nel codice dovrai adattare la tuo URL al posto della mia.
    La parte finale del codice è tutta commentata e serve a sovrapporere fino a 3 loghi sullo scatto ma per ora lascerei stare.


    Codice PHP:
    <?php
       
    header
    ("Refresh: 60; url=" $_SERVER["PHP_SELF"]);
      
    // attivazione webcam_hikvsn.php
    function process_queue() {
    //variables
    $url "http://www.meteospinaceto.it/hikvision/webcam_hikvsn.php";

    //apro la connessione
    $ch curl_init();
    curl_setopt($chCURLOPT_URL$url);
    $result curl_exec($ch);

    //chiudo
    curl_close($ch);

    return 
    $result;
    }
    $result process_queue();

      
    // fine attivazione webcam_hikvsn.php
        // prepara l'array per i nomi dei file
        
    $directory = array();


    $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,195);         // 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($nome_immagine));
      }
    fclose($fp);

    header("Content-type: image/jpg");
    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($im10128);  // colore della barra formato RGB
    $colore_testo  imagecolorallocate($im255255255); // idem per testo
    $x=imagesx($im);
    $y=imagesy($im);

    $font "VeraBd.ttf";
    $size 20;                     // dimensione del testo
    $altezza_barra 50;                  // dimensione della barra


    imagefilledrectangle($im0$y-$altezza_barra$x-1$y-1$colore_barra);

    $bbox imagettfbbox ($size0$font$testo_sinistra);
    $dy  = (($bbox[1] - $bbox[7]) / 2);
    imagettftext($im$size05$y-($altezza_barra 2) + $dy 1$colore_testo$font$testo_sinistra);
     
    $bbox imagettfbbox ($size0$font$testo_destra);
    $dx  = ($bbox[2] - $bbox[0]);
    imagettftext($im$size0$x-5-$dx$y-($altezza_barra 2) + $dy 1$colore_testo$font$testo_destra);


    $info getimagesize($nome_immagine);                  //carica immagine                
    //$logo = imagecreatefrompng("sacile.png") ;          //carica 1° logo - h/= cartella - sacile.png = nome del file e estensione.png
    //$logo2 = imagecreatefrompng("mnw.png") ;   //carica 2° logo - h/= cartella - mnw.png = nome del file e estensione.png
    //$logo3 = imagecreatefrompng("logo_M3V.png") ;   //carica 3° logo - h/= cartella - logo_M3V.png = nome del file e estensione.png
    //imagecopy($im, $logo, 5, $info[1]-100, 0, 0, 156,64); //posizione 1°logo(da sx= 5 ,dal fondo= -84)dimensione 1°logo(156=larghezza ,64=altezza )
    //imagecopy($im, $logo2, 5, $info[1]-150, 0, 0, 150,38); //posizione 2°logo(da sx= 700 ,dal fondo= -65)dimensione 2°logo(156=larghezza ,38=altezza )
    //imagecopy($im, $logo3, 5, $info[1]-210, 0, 0, 150,53); //posizione 3°logo(da sx= 865, dal fondo= -80)dimensione 3°logo(150=larghezza ,53=altezza )

    imagejpeg($im,"",85);
    imagedestroy($im);
    ?>
    Facci sapere....

    ciao a tutti da Roberto

    Stazione Davis 6163 VP2 Plus
    La mia webcam a Nord La mia webcam a Ovest



    Nell'interesse generale del Forum, NON RISPONDO privatamente a quesiti di ordine tecnico che invece possono essere dibattuti collettivamente

  3. #3
    myMeteoNetwork Team L'avatar di Orso Polare
    Data Registrazione
    18/09/08
    Località
    Roma
    Età
    77
    Messaggi
    5,579
    Menzionato
    18 Post(s)

    Predefinito Re: webcam.php per hikvision

    Sorry , mi ero dimenticato un file che dovrà stare anche lui in medesima Directory dell'altr PHP che poi è quella dello scatto....
    Il file precedente ha nome "hikvsn.php" che poi è il file che i tuoi visitatori richiameranno, mentre il secondo che è in questo post ha nome "webcam_hikvsn.php"

    Codice 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('../hikvision');

        
    // 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"07) == "webcam_") {
            
    $directory[] = $file;
          }

        }

        
    // chiude l'handler
        
    closedir($handler);

      
    // ordina la lista dei file per nome (il piu' nuovo sara' il più recente)
      
    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 1;     // 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);
      }
     
    // copy('webcam.jpg','../../webcam.jpg');

    ?>
    Ora dovrebbe esserci tutto.....

    ciao a tutti da Roberto

    Stazione Davis 6163 VP2 Plus
    La mia webcam a Nord La mia webcam a Ovest



    Nell'interesse generale del Forum, NON RISPONDO privatamente a quesiti di ordine tecnico che invece possono essere dibattuti collettivamente

Segnalibri

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •