Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Sovrapporre barra all'immagine della webcam

    Ciao a tutti!
    Gestisco una webcam, la trovate quì:
    http://www.meteovulture.com/webcam.php

    Ora vorrei far sì che la barra delle informazioni sotto sia trasparente, un po come avviene con questa webcam:
    http://img269.imageshack.us/img269/594/image01obu.jpg

    Avevo pensato di sovrapporre una barra creata da me in png (simile a quella) all'immagine della webcam e posizionarla in basso con la scritta sovrapposta. Sono riuscito a sovrapporre un piccolo logo, ma con la barra non ci riesco. (La barra è quì: www.meteovulture.com/barra.png).
    Come posso fare?
    Ecco il codice che utilizzo ora (com'è ora per la barra crea un rettangolo di colore blu e sovrappone le informazioni):

    codice:
    <?php
    
    IF (file_exists('cam.jpg')== true) { 
    $nome_immagine="cam.jpg";
    }else{ 
    $nome_immagine="upload.jpg";
    }
    $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);
    $colore_barra = imagecolorallocate($im, 1, 0, 128);
    
    IF ($nome_immagine == 'cam.jpg') {
    $colore_testo  = imagecolorallocate($im, 255, 255, 255);
    }else{
    $colore_testo  = imagecolorallocate($im, 1, 0, 128);
    }
    $x=imagesx($im);
    $y=imagesy($im);
    
    $font = "VeraBd.ttf";
    $size = 8;							// 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);
    
    //inserisco logo
    $logo = @imagecreatefrompng('logocam.png');
    $imagewidth = imagesx($im);
    $imageheight = imagesy($im);  
    $logowidth =  imagesx($logo);
    $logoheight =  imagesy($logo);
    $startwidth = (($imagewidth - $logowidth) );
    $startheight = (( $imageheight - $logoheight) );
    
    /*imagecopy(immagine, logo, starwidth, startheight(pixel di partenza
    da dove incollare il logo. Le coordinate partono da in alto a sinistra
     e crescono andando verso il basso e verso destra), startwidthlogo,
    startheightlogo(pixels di partenza da dove copiare l'immagine del logo. 
    Per copiare tutto il logo mettere 0, 0), logowidht, logoheight(numero 
    di pixel da copiare del logo. Si parte sempre da in alto a sinistra a 
    contare)) */
    
    imagecopy($im, $logo,  $startwidth, 0, 0, 0, $logowidth, $logoheight);
    imagejpeg($im,"",95);
    
    /* Per incollare più loghi ripetere la procedura ricordandosi di mettere 
    in fondo il comando: "imagedestroy($logo2)". E così via.. */
    
    imagejpeg($im,"",95);
    imagedestroy($im);
    
    ?>
    Grazie
    Ciao!

  2. #2
    Ok, sono riuscito a mettere la barra... ho però un problema: il testo va sotto la barra e si vede male...

    Ecco il codice che utilizzo:
    codice:
    <?php
    
    IF (file_exists('cam.jpg')== true) { 
    $nome_immagine="cam.jpg";
    }else{ 
    $nome_immagine="upload.jpg";
    }
    $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);
    
    
    IF ($nome_immagine == 'cam.jpg') {
    $colore_testo  = imagecolorallocate($im, 255, 255, 255);
    }else{
    $colore_testo  = imagecolorallocate($im, 1, 0, 128);
    }
    $x=imagesx($im);
    $y=imagesy($im);
    
    $font = "VeraBd.ttf";
    $size = 8;							// dimensione del testo
    $altezza_barra = 20;						// dimensione della barra
    
    $logo = @imagecreatefrompng('barra.png');
    $imagewidth = imagesx($im);
    $imageheight = imagesy($im);  
    $logowidth =  imagesx($logo);
    $logoheight =  imagesy($logo);
    $startwidth = (($imagewidth - $logowidth) );
    $startheight = (( $imageheight - $logoheight) );
    
    
    imagefilledrectangle($im, 0, $y-$altezza_barra, $x-1, $y-1);
    
    $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);
    
    
    
    imagecopy($im, $logo,  $startwidth, 580, 0, 0, $logowidth, $logoheight);
    imagejpeg($im,"",95);
    
    /* Per incollare più loghi ripetere la procedura ricordandosi di mettere 
    in fondo il comando: "imagedestroy($logo2)". E così via.. */
    
    imagejpeg($im,"",95);
    imagedestroy($im);
    
    ?>
    Come posso risolvere?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.