Visualizzazione risultati 1 fino 2 di 2

Discussione: [PHP] Sovrapporre barra ad una webcam

  1. #1
    Guest

    Predefinito [PHP] Sovrapporre barra ad una webcam

    Salve a tutti!
    Gestisco una webcam a questo indirizzo:
    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 a destra, con la scritta sovrapposta. (La barra è quì: www.meteovulture.com/barra.png).
    Come posso fare?
    Ecco il codice che utilizzo ora (in pratica 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);
    
    ?>

  2. #2
    Guest

    Predefinito

    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?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •