catturare e rinominare jpg

Rieccomi con un problema.
Ho fatto partire lo script ogni 15 minuti ed in fase di test ho notato un problema:
a MEZZANOTTE viene catturata e salvata in oggi un'immagine con nome 30_120001.jpg, dopo 15 minuti un'altra immagine chiamata 30_121501 e così via.
Il problema arriva a MEZZOGIORNO, infatti viene creata e sovvrascritta un'immagine 30_120001.jpg che ha lo stesso nome di quella di mezzanotte.
Alla fine della giornata mi trovo solo 12 ore di scatti invece della giornata completa.
Il problema è su come vengono rinominate le fotografie.
Potresti fare in modo che vengano chiamate 0.jpg , 1.jpg ecc ?
Almeno, facendo partire il php ogni 15 minuti mi ritroverei nella cartella "oggi" 96 immagini a partire da 0.jpg fino a 95.jpg.
Mi tornerebbe più comodo anche per lo script dello slideshow :)
Ciao e grazie
P.S. a lavoro ultimato ti manderò il link per visionare il tutto
 
ciao
il sistema più semplice è correggere

$oggi=date("ymd_his",$oggi)

in
$oggi=date("ymd_His",$oggi)

deve essere proprio il caldo h va da 00 a 12 (e ci vorrebbe am o pm)
H va da 00 a 24

se vuoi posso provare con la numerazione pero diventa più difficoltoso capire conme determinare se di oggi ieri o ieril'altro
 
Per l'ennesima volta grazie.
Ho fatto la modifica e le immagini vengono salvate come 120630_222201.jpg (data e ora in 24H)
Non voglio complicarti la vita con una "numerazione difficoltosa", al limite ti richiederò aiuto per lo slideshow ;)
Tengo il tutto in prova per un paio di giorni e ti faccio sapere
Ciao
 
Direi che ci siamo.
Avrei bisogno di un'ultima cosa per completare l'opera ;)
Vorrei "stampare" sulle foto catturate con il tuo script una barra contenente data, ora ed alcune informazioni contenute in un file testo.txt.
Per la visualizzazione della webcam direttamente sul sito utilizzo questo:

PHP:
<?php
$nome_immagine="wrt160.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($nome_immagine)); 
   }
fclose($fp);
header("Content-type: image/png");
$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 = 10;							// dimensione del testo
$altezza_barra = 20;						// 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);
?>

Dici che è possibile integrarlo nel tuo?
Se la cosa richiede troppo tempo, mi posso tranquillamente accontentare di visualizzare sulle foto data ed ora.
Si puo' fare?

Ciao e grazie
 
Ultima modifica di un moderatore:
ciao
se non ho capito male tu vuoi aggiungere sull'immagine una barra con la data (watermark) quindi ti conviene trattare prima la wrt160.jpg poi renominare e/o spostare
comunque prova perchè non l'ho testato
PHP:
<?php
function scrivi_su_immagine($imm,$tx){
	$nome_immagine=$imm;            // file contenente l'immagine
	$nome_testo=$tx;            // 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($nome_immagine)); 
	}
	fclose($fp);
	header("Content-type: image/png");
	$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 = 10;                            // dimensione del testo
	$altezza_barra = 20;                        // 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);
}//fine function
//il resto dello script rimnane uguali, solo dopo la verifica se wrt160.jpg aggiungi la riga per trattarlo, poi prosegui come prima
//.....
$oggi=time();//legge il tempo in timestamp nel momento in cui carichi la foto
$ieri=$oggi-(24*60*60);
$ieri_altro=$oggi-(2*24*60*60);
//trasformo il timestamp
$oggi=date("ymd_his",$oggi);//$oggi diventa es. 24_194327 (giorno 24, ore 19, 43 min, 23 sec)
$nuovo_nome="oggi/".$oggi.".jpg";
//sposti nella cartella oggi
if(file_exists("wrt160.jpg")){//messo perche se lanci lo script e non c'è wrt160.jpg da errore e si blocca al rename
    //qui prima di rinominarlo lo tratti con la funzione scrivi_su_immagine
	scrivi_su_immagine("wrt160.jpg","testo.txt");
	if(rename("wrt160.jpg",$nuovo_nome)){//sposta la wrt160.jpg in oggi chiamandola (es) 120625_082424.jpg
        echo "foto spostata con successo";
    }else{
        echo "errore";// qui sta a te decidere cosa fare
    }
}
//ECCETERA tutto il resto dello script.....

?>
 
Ok. ci sono riuscito :fonzie:
Ho dovuto sistemare qualcosina (rinomine e salvataggi vari) ma ora sembra funzionare tutto alla perfezione.
Grazie ancora
Quando ho finifo di tico dove visionare il risultato ;)
Ciao
 

Discussioni simili