Risultati da 1 a 7 di 7
  1. #1
    Vento fresco L'avatar di eremite
    Data Registrazione
    19/11/10
    Località
    nerola(rm)/453m slm
    Età
    27
    Messaggi
    2,653
    Menzionato
    0 Post(s)

    Predefinito webcam.php per hikvision

    Buongiorno a tutti, ho una webcam ip hikvision che carica immagini via ftp con url che cambia in base alla data e all'ora, so che esiste uno script da inserire all'interno della cartella stessa che si può chiamare webcam.php che mostri solo l'immagine più recente, ce l'avevo e funzionava bene, ma ora non so per quale motivo, me lo sono perso e online non si trova granchè. Ci sono molte cose simili riguardante le foscam, perchè più o meno, credo, i passaggi siano simili, ma non essendo proprio pratico ho provato a modificare e riadattare alla hikvision ma con risultati scarsi, anzi nulli. Qualcuno riesce ad aiutarmi?
    premetto che le immagini vengono inviate via ftp al sito/cartella 403 Forbidden e hanno il seguente formato webcam_F18835763_20230714131000915_TIMING.jpg

  2. #2
    Vento fresco L'avatar di eremite
    Data Registrazione
    19/11/10
    Località
    nerola(rm)/453m slm
    Età
    27
    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>

  3. #3
    myMeteoNetwork Team L'avatar di Orso Polare
    Data Registrazione
    18/09/08
    Località
    Roma
    Età
    75
    Messaggi
    5,527
    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

  4. #4
    myMeteoNetwork Team L'avatar di Orso Polare
    Data Registrazione
    18/09/08
    Località
    Roma
    Età
    75
    Messaggi
    5,527
    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

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

    Predefinito Re: webcam.php per hikvision

    Allora, adesso all'interno della cartella oltre i vari scatti della webcam ci sono anche i file
    webcam.php
    webcam_hikvision.php
    verabd.tff
    testo.txt

    webcam.php l'ho modificato in questo modo
    Codice HTML:
    <?php   header("Refresh: 60; url=" . $_SERVER["PHP_SELF"]);  // attivazione webcam_hikvsn.phpfunction process_queue() {//variables$url = "http://www.meteonerola.it/nerola/webcam.php";//apro la connessione$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);$result = curl_exec($ch);//chiudocurl_close($ch);return $result;}$result = process_queue();  // fine attivazione webcam.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 destraif ( $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($im, 1, 0, 128);  // 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 = 20;                     // dimensione del testo$altezza_barra = 50;                  // dimensione della barraimagefilledrectangle($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);$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);?>
    mentre webcam_hikvision.php è in questo modo
    Codice HTML:
    <?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", 0, 7) == "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');?>
    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", 0, 7) == "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');?>
    Premesso che anche io uso aruba e che le immagini sono all'interno della cartella meteonerola.it/Nerola/
    qualcosa devo aver sbagliato, perchè non mi esce niente, mi da solo un quadratino al centro della pagina

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

    Predefinito Re: webcam.php per hikvision

    Citazione Originariamente Scritto da eremite Visualizza Messaggio
    Allora, adesso
    CUT qualcosa devo aver sbagliato, perchè non mi esce niente, mi da solo un quadratino al centro della pagina
    Hai un messaggio personale
    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

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

    Predefinito Re: webcam.php per hikvision

    Citazione Originariamente Scritto da Orso Polare Visualizza Messaggio
    Hai un messaggio personale
    Ti ho risposto ma non mi compare tra i "messaggi inviati" quindi forse o non ti arrivano oppure ti ritrovi 3 miei messaggi uguali

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
  •