Con questa guida cercherò di spiegare come fare a far visualizzare le immagini create da ufocapture v2 in tempo reale su un sito web, come ad esempio faccio io con la postazione SIRED_ONE
Ufoc ha la funzione di trasferimento in ftp delle ultime immagini catturate (anche video compressi wmv) su un qualunque server. La cosa è semplice da fare, basta impostare i parametri di connessione nella finestra di settaggio ed al resto pensa il software... l'altra cosa semplice da fare ma che non tutti sono capaci è quella di creare una pagina web che legga e visualizza in automatico le immagine caricate.
Ipotizziamo di avere un servizio di hosting con questi parametri ftp:
per prima cosa impostiamo ufocapture per effettuare il collegamento
La "dir" è la cartella nella quale verranno salvate le immagini potete cambiarle sia il nome che la posizione basta che la reimpostate nei settaggi, è necessario crearla prima tramite un client ftp o si ottiene un "dir error".
Se ad esempio la cartella si trova in un altra cartella il "DIR" sarà così: "/cartella/ufoc/".
L'articolo riguarda il trasferimento delle due immagini S/pjpeg & T/jpeg e non quello del video .wmv dato che non era di mio interesse (anche a causa del codec).
Con queste impostazioni, ufocapture ad ogni detect trasferirà automaticamente nella cartella impostata due immagini numerate e differenziate dal nome file, esempio: ufo1.jpg & ufos1.jpg.
Le immagini presenti inviate da ufoc hanno un limite impostato dalla casella "+no" nei settaggi, se ad esempio è impostata ad 8 verranno create fino ad 8 immagni (ufo1.jpg, ufo2.jpg...ufo8.jpg), per poi reiniziare da zero sovrascrivendo le vecchie. Si può ben capire che con questo codice html dato che i nomi file saranno sempre quelli si risolve velocemente il problema della visualizzazione online:
Ma devo dire chè è una soluzione di poca "eleganza"...dato che:
- se non esiste un immagine si ottiene un "errore" (dipende dal browser ma non è comunque bella cosa)
- dato che ufocapture non riparte bene con i nomi files tra un accensione e l'altra, con il sistema fisso senza il controllo dell'eventuale data, si ottengono immagini recenti in mezzo alle vecchie
- non è possibile visualizzare la data dell'immagine sopra di essa
E per questi motivi...ho usato il php! linguaggio di scripting presente nella stragrande maggioranza degli hosting.
La logica dello script che ho creato è questa:
-Leggi & inserisci il nome delle immagini della cartella /ufoc/ in un array
-Crea da esso due array con le immagini (ufos & ufo) ordinate per data (e non per nome)
-Esegui un ciclo per stampare l'html delle immagini nell'array
Il codice è il seguente:
Cosa si fa con questo codice?
Qualcuno che già ha avuto a che fare con il php sa cosa fare...per gli altri:
Si dovrebbe creare una pagina .php ed inserire questo codice in essa, assieme alle altre cose che vorreste mettere, ma mi è dura a spiegarvelo meglio perché in sostanza è come vi ho scritto e non so andare oltre.
Pensando bene però a come un utente non "esperto" possa fare mi è venuta in mente una soluzione più semplice rapida e per metterla in atto bisogna agire così:
Se si vede, siete al 99% :D, per includerle in una pagina del vostro sito incollate questo codice in essa:
Al codice scritto sopra è possibile modificare i seguenti parametri a vostra necessità:
Se non visualizzate le immagini i problemi potrebbero essere molteplici, escluderei quelli legati allo script, a meno che il path sia impostato male. Io ad esempio dato che la connessione ftp del mio hosting va a tratti o dopo vari tentativi di connessione, ho avuto dei problemi!
Ufocpature falliva l'upload con un messaggio del genere :"Autorizzazioni non disponibili per la password." e non ritentava le connessioni. Ho dovuto infatti creare un "bridge" ftp in locale...un bel macello insomma e in futuro potrei fare una guida a riguardo. Quello che vi consiglio a limite è di ricontrollare bene tutti i passaggi, che se fatti a dovere dovrebbero portare risultati. Spero di essere stato di aiuto.
Ufoc ha la funzione di trasferimento in ftp delle ultime immagini catturate (anche video compressi wmv) su un qualunque server. La cosa è semplice da fare, basta impostare i parametri di connessione nella finestra di settaggio ed al resto pensa il software... l'altra cosa semplice da fare ma che non tutti sono capaci è quella di creare una pagina web che legga e visualizza in automatico le immagine caricate.
Ipotizziamo di avere un servizio di hosting con questi parametri ftp:
-Host: ftp.ilmioserviziodihosting.com
-Utente : user@ilmioserviziodihosting.com
-Password : lapasswordftp
-Utente : user@ilmioserviziodihosting.com
-Password : lapasswordftp
per prima cosa impostiamo ufocapture per effettuare il collegamento
Se ad esempio la cartella si trova in un altra cartella il "DIR" sarà così: "/cartella/ufoc/".
L'articolo riguarda il trasferimento delle due immagini S/pjpeg & T/jpeg e non quello del video .wmv dato che non era di mio interesse (anche a causa del codec).
Con queste impostazioni, ufocapture ad ogni detect trasferirà automaticamente nella cartella impostata due immagini numerate e differenziate dal nome file, esempio: ufo1.jpg & ufos1.jpg.
Le immagini presenti inviate da ufoc hanno un limite impostato dalla casella "+no" nei settaggi, se ad esempio è impostata ad 8 verranno create fino ad 8 immagni (ufo1.jpg, ufo2.jpg...ufo8.jpg), per poi reiniziare da zero sovrascrivendo le vecchie. Si può ben capire che con questo codice html dato che i nomi file saranno sempre quelli si risolve velocemente il problema della visualizzazione online:
<table> <tr> <td><a href="/ufoc/ufo1.jpg"><img src="/ufoc/ufos1.jpg" style="border:0px" /></a></td> <td><a href="/ufoc/ufo2.jpg"><img src="/ufoc/ufos2.jpg" style="border:0px" /></a></td> <td><a href="/ufoc/ufo3.jpg"><img src="/ufoc/ufos3.jpg" style="border:0px" /></a></td> <td><a href="/ufoc/ufo4.jpg"><img src="/ufoc/ufos4.jpg" style="border:0px" /></a></td> </tr> <tr> <td><a href="/ufoc/ufo5.jpg"><img src="/ufoc/ufos5.jpg" style="border:0px" /></a></td> <td><a href="/ufoc/ufo6.jpg"><img src="/ufoc/ufos6.jpg" style="border:0px" /></a></td> <td><a href="/ufoc/ufo7.jpg"><img src="/ufoc/ufos7.jpg" style="border:0px" /></a></td> <td><a href="/ufoc/ufo8.jpg"><img src="/ufoc/ufos8.jpg" style="border:0px" /></a></td> </tr> </table>
- se non esiste un immagine si ottiene un "errore" (dipende dal browser ma non è comunque bella cosa)
- dato che ufocapture non riparte bene con i nomi files tra un accensione e l'altra, con il sistema fisso senza il controllo dell'eventuale data, si ottengono immagini recenti in mezzo alle vecchie
- non è possibile visualizzare la data dell'immagine sopra di essa
E per questi motivi...ho usato il php! linguaggio di scripting presente nella stragrande maggioranza degli hosting.
La logica dello script che ho creato è questa:
-Leggi & inserisci il nome delle immagini della cartella /ufoc/ in un array
-Crea da esso due array con le immagini (ufos & ufo) ordinate per data (e non per nome)
-Esegui un ciclo per stampare l'html delle immagini nell'array
Il codice è il seguente:
<?php //Script che visualizza le immagini caricate dal software UfoCaptureV2 //Creato da http://www.rednefmis.com 11/04/2011 //http://www.rednefmis.com/informatica/guida-come-rendere-online-le-immagini-catturate-da-ufocapturev2-1853061322.html //Impostazioni del sistema, da modificare $path="ufoc"; //il path della cartella con le immagini ,senza slash finale $colonne="4"; // il numero delle colonne che deve avere la tabella $ordine="1"; //l'ordine di visualizzazione delle immagini, 0 o 1 $visualizza_tempo="1"; //Visualizza il tempo del caricamento sopra l'immagine, 0 o 1 // il seguente codice non richiede modifiche //funzioni , prese dal web & modificate function elencafiles_ufoc($dirname){ $arrayfiles=Array(); if(file_exists($dirname)){ $handle = opendir($dirname); while (false !== ($file = readdir($handle))) { if(is_file($dirname.$file)){ array_push($arrayfiles,$file); } } $handle = closedir($handle); } $arrayfiles_final=Array(); $arrayfiles_count=count($arrayfiles); for($x=0;$x<$arrayfiles_count;$x++){ if (preg_match("/^ufos/i", $arrayfiles[$x])) { $file_time =filemtime($dirname.$arrayfiles[$x]); $file_name=$arrayfiles[$x]; $arrayfiles_final[$file_name]=$file_time; } } asort($arrayfiles_final); return $arrayfiles_final; } function quantotempo($oldtime) { $diff = (int)(time() - $oldtime); if ($diff <= 60) $output = $diff . " secondi fa"; elseif ($diff > 60 && $diff <= 3600) $output = round($diff/60) . " minuti fa"; elseif ($diff > 3600 && $diff <= 86400) $output = round($diff/3600) . " ore fa"; else $output = "il " . date('d/m/Y', $oldtime); return $output; } //inizio script $photos = elencafiles_ufoc("$path/");//elenco le immagini della cartella $count_photos = count($photos);//conto le immagini nella cartella //in base all'ordine impostato faccio il reverse dell'array if($ordine==1){ $photos = array_reverse($photos); } $piccola = array_keys($photos);//creo l'array con le immagini "piccole" $grande = str_replace("ufos", "ufo", array_keys($photos));//creao l'array con le immagini "grandi" //conto le immagini piccole $count_piccola = count($piccola); $u=0; //stampo la struttura iniziale della tabella echo "<center>"; echo "<table>"; //creo un ciclo per stampare il codice html dell'immagini for($x=0;$x<$count_piccola;$x++){ if($u==0){echo "<tr>";} $piccola_ok = $piccola[$x]; $grande_ok = $grande[$x]; $tempo_caric_ts=$photos[$piccola_ok]; $tempo_caric_all=date("d-m-Y H:i:s", $tempo_caric_ts); $tempo_caric=quantotempo($tempo_caric_ts); if($visualizza_tempo==1){ $visualizza_tempo_html='<span title="'.$tempo_caric_all.'">'.$tempo_caric.'</span><br>'; }else{ $visualizza_tempo_html=""; } echo <<<HTML <td> $visualizza_tempo_html <a href="$path/$grande_ok" title="Visualizza immagine grande" target="_top"> <img src="$path/$piccola_ok" alt="" title="" style="border: 0px none;" height="120" width="160"> </a> </td> HTML; if($u==$colonne-1){echo "</tr>";$u=0;}else{$u=$u+1;} } //concludo la tabella $count_td_mancanti= ($colonne)-$u; if($u!=0){ for($x=0;$x<$count_td_mancanti;$x++){ echo "<td></td>"; $stampa_tr="</tr>"; } echo $stampa_tr; } echo "</table>"; echo "</center>"; ?>
Cosa si fa con questo codice?
Qualcuno che già ha avuto a che fare con il php sa cosa fare...per gli altri:
Si dovrebbe creare una pagina .php ed inserire questo codice in essa, assieme alle altre cose che vorreste mettere, ma mi è dura a spiegarvelo meglio perché in sostanza è come vi ho scritto e non so andare oltre.
Pensando bene però a come un utente non "esperto" possa fare mi è venuta in mente una soluzione più semplice rapida e per metterla in atto bisogna agire così:
-create un file nella root (cartella iniziale /) del vostro sito (tramite ftp), chiamatelo ad esempio "ufocapture.php"
& incollate dentro quest'ultimo il codice su scritto. Scaricate qui il file gia pronto.
-assicuratevi di indicare bene il path della cartella-immagini(ovviamente lo stesso indicato su ufoc ftp) all'inizio dello script
Una volta fatto questo fate la prova del 9, aprite ufocapture mettetelo in record e stoppate, andate all'indirizzo:& incollate dentro quest'ultimo il codice su scritto. Scaricate qui il file gia pronto.
-assicuratevi di indicare bene il path della cartella-immagini(ovviamente lo stesso indicato su ufoc ftp) all'inizio dello script
http://indirizzodeltuositoweb/ufocapture.php
e controllate se si vede l'immagine.
Se si vede, siete al 99% :D, per includerle in una pagina del vostro sito incollate questo codice in essa:
<iframe src="/ufocapture.php" width="100%" height="300px" frameborder="0" > <p>Il tuo browser non supporta gli iframe.</p> </iframe>
width="100%"
è la larghezza del "box" contenente le immagini, è possibile impostarla al 100% o a larghezza fissa in px (es. width="500px")
height="300px"
è l'altezza del "box" contenente le immagini, il valore richiesto è in px (es. height="150px")
frameborder="0"
è il bordo del "box" contenente le immagini, "0" disattivato "1" attivato
è la larghezza del "box" contenente le immagini, è possibile impostarla al 100% o a larghezza fissa in px (es. width="500px")
height="300px"
è l'altezza del "box" contenente le immagini, il valore richiesto è in px (es. height="150px")
frameborder="0"
è il bordo del "box" contenente le immagini, "0" disattivato "1" attivato
Se non visualizzate le immagini i problemi potrebbero essere molteplici, escluderei quelli legati allo script, a meno che il path sia impostato male. Io ad esempio dato che la connessione ftp del mio hosting va a tratti o dopo vari tentativi di connessione, ho avuto dei problemi!
Ufocpature falliva l'upload con un messaggio del genere :"Autorizzazioni non disponibili per la password." e non ritentava le connessioni. Ho dovuto infatti creare un "bridge" ftp in locale...un bel macello insomma e in futuro potrei fare una guida a riguardo. Quello che vi consiglio a limite è di ricontrollare bene tutti i passaggi, che se fatti a dovere dovrebbero portare risultati. Spero di essere stato di aiuto.