CENTRODIGRAVITA.it
Pubblicare immagini della WEBCAM/IPCAM sul proprio sito con PHP
Quasi la totalità delle "IPCAM" in commercio hanno la possibilità di esportare le immagini tramite FTP con uno schedulatore o a tempo.
Questo ci permette di pensare di pubblicare queste immagini su di un sito web, blog... etc.
Dopo aver configurato l'apparato e verificato che effettivamente viene salvata l'immagine nella cartella corretta dell'FTP sorge un problema. Ogni volta che l'apparato salva l'immagine crea una nuova immagine con l'orario e contatore.
Come facciamo a visualizzare solo l'ultima immagine e magari aggiungerci un testo e i riferimenti dell'orario?
Possiamo risolvere la cosa ricorrendo al linguaggio PHP che ci permette di eseguire una serie di istruzioni quando la pagina viene caricata.
E se utilizziamo un CMS come joomla o altri?
Semplicemente si installano dei plugin che permettono l'inserimento di codice PHP o altri linguaggi di programmazione.
Per JOOMLA è posssibile installare il plugin "sourcerer" che permette di inserire codice tra i tag " source " e " /source " (con al posto delle " la parentesi graffa).
IL CODICE PHP
Sinteticamente questo script opera in questo modo: quando viene aperta una pagina web, non fa altro che cercare l'immagine caricata più recente in base alla numerazione e la data/ora in formato americano, la salva in un altra cartella, la rielabora aggiungendo testo e ritoccando i colori e poi elimina tutte le immagini caricate per poi visualizzarla. Nulla vieta di rielaborare questo script per catalogare le immagini giornalmente invece di cancellarle.
<?php
// definiamo delle variabili
$ts = 0;
// prefisso del file che per ogni IPCAMERA cambia
$img = "00A3F820643F(IPCAMERA)_0_";
//Percorso FTP del sito dove vengono copiate le immagini della camera
$dir = "./ipcamera/";
//Ricerca dell'ultimo file copiato della IPCAM escludendo il prefisso del nome del file e utilizzando la data e l'ora per pescare l'ultimo
if (is_dir("$dir")) {
if ($dh = opendir("$dir")) {
while (($file = readdir($dh)) !== false) {
if(is_file("$dir/$file")) {
$tsf = filemtime("$dir/$file");
if($tsf >= $ts) {
$img = $file;
$ts = $tsf;
}
}
}
closedir($dh);
}
}
//salviamo il file trovato più recente ($img) con il percorso ($dir) nella variabile $originale
$originale = "$dir/$img";
//Impostiamo il nuovo file che conterrà l'ultima immagine
$copia = './ipcamera/immagine/img.jpg';
//se ha precedentemente trovato il file nella ricerca viene rielaborato altrimenti visualizza quello precedente
if(is_file($originale)){
//importa da file l'immagine
$mia_img = imagecreatefromjpeg($originale);
//imposta il colore che avrà il testo in overlay
$colore_testo = imagecolorallocate($mia_img,255,0,0);
//sisitemano i colori RGB dell'immagine
imagefilter($mia_img, IMG_FILTER_COLORIZE, 10, 24, 20);
//vengono reperite le informazioni della data e dell'ora dal file che la IPCAM ha generato
$data= substr($img, 26, 14);
$anno= substr($data, 0, 4);
$mese= substr($data, 4, 2);
$giorno= substr($data, 6, 2);
$ora= substr($data, 8, 2);
$min= substr($data, 10, 2);
$sec= substr($data, 12, 2);
//il primo testo da applicare all'immagine
$testo = "www.centrodigravita.it";
//viene applicato il testo dove 225 è la posizione x e 5 è la posizione y
Imagestring($mia_img,10,225,5,$testo,$colore_testo);
//il primo testo da applicare all'immagine che consiste nell'ora e nella data
$testo =$ora.":".$min.":".$sec." ". $giorno . "/". $mese ."/". $anno;
//viene applicato il testo
Imagestring($mia_img,10,460,440,$testo,$colore_testo);
//viene impostata la qualità del file da salvare
$quality = 100;
//si salva l'immagine creata su file nel percorso-file $copia
imagejpeg($mia_img, $copia , $quality);
}
//vengono cancellati tutti i file nella cartella $dir --------------- ATTENZIONE ---------------
$handle = opendir($dir);
while (($file = readdir($handle)) !== false) {
if(is_file($dir.$file)){
unlink($dir.$file);
}
}
closedir($handle);
//viene visualizzata l'immagine nella pagina web
print("<img src=\".\ipcamera\immagine\img.jpg\" border=\"2\" width=\"640\" height=\"480\">\n");
?>
Tutto il materiale (testo, grafica e immagini) presente in questo sito è di proprietà di CENTRODIGRAVITA.it, pubblicato su concessione degli autori. Ne è vietata la riproduzione, anche parziale, senza il consenso scritto da parte dello staff CENTRODIGRAVITA.it. Eventuale materiale erroneamente pubblicato e soggetto a copyright verrà immediatamente rimosso su segnalazione del titolare dei diritti. CENTRODIGRAVITA.it non si assume nessuna responsabilità per danni che derivino dall'utilizzo delle informazioni, consigli e file scaricati dal sito. Per info o problemi cliccate qui per contattarci. o qui per accedere all'informativa sui cookie