Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: GD random img code

  1. #1

    GD random img code

    Vorrei realizzare un immagine jpg o gif nel quale porre un codice randometrico
    (come presente nei tool di http://www.tuttowebmaster.it/ranking.php)
    con un img di sfondo tipo filigrana in modo da impedire eventuali tentativi di OCR
    Image-Scanning (http://www.ashberg.de/php-barcode/)
    Per la generazione del codice o gia risolto ma non so come realizzare l’immagini
    per il momento ho lavorato con le GD solo per ridimensionare un immagine esistente


    cichity74

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    codice:
    $codice = rand(1000,9999);
    $altezza=26;
    $perturba=100;
    $larghezza=strlen($codice)*11;
    $im = imagecreate($larghezza, $altezza);
    $colore_sfondo = imagecolorallocate($im, 255, 255, 255);
    $colore_testo = imagecolorallocate($im, 100, 100, 100);
    $colore_linea = imagecolorallocate($im, 200, 200, 200);
    for ($i=1;$i<$altezza;$i=$i+6)
    	imageline($im,1,$i,$larghezza,$i,$colore_linea);
    for ($i=1,$temp=strlen($codice);$i<$temp*12;$i=$i+6)
    	imageline($im,$i,1,$i,$altezza,$colore_linea);
    for ($i=1;$i<$perturba;$i++){
    	$temp=array(rand(1,$larghezza),rand(1,$altezza));
    	imageline($im,$temp[0],$temp[1],$temp[0],$temp[1],$colore_testo);
    }
    imagestring($im, 5, 5, 5,  $codice, $colore_testo);
    header("Content-type: image/jpeg");
    imagejpeg($im);
    imagedestroy($im);
    think simple think ringo

  3. #3
    Ti ringrazio per il codice è perfetto
    Ho un solo problema nello script utilizzi header per restituire l’immagine al browser senza salvarla su disco ma header mi impedisce di inserire output sia in testa che in coda al codice da te realizzato
    Come posso risolvere

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    salva il codice dentro un file php che richiamerai in questo modo:
    <img src=pagina.php?codice=4544>
    think simple think ringo

  5. #5

    Per chiunque possa ritenerlo utile
    p.s: Di nuovo grazie a marketto per il contributo

    Codice PHP:
    <?php
    session_start
    ();
    //------------------------------------------------------------------------------------
    // Unico valore da settare (la dir dove viene salvata l'immagine)
    $dir_img "/test_vari/code_img/code/";
    //------------------------------------------------------------------------------------
    function Code_Img($dir_img) {
            
    $codice rand(1000,9999);
            
    $altezza 20;
            
    $perturba 85;
            
    $larghezza strlen($codice)*11;
            
    $im imagecreate($larghezza$altezza);
            
    $colore_sfondo imagecolorallocate($im255255255);
            
    $colore_testo imagecolorallocate($im100100100);
            
    $colore_linea imagecolorallocate($im200200200);
            for (
    $i=1;$i<$altezza;$i=$i+6) {
                
    imageline($im,1,$i,$larghezza,$i,$colore_linea);
            }
            for (
    $i=1,$temp=strlen($codice);$i<$temp*12;$i=$i+6) {
                
    imageline($im,$i,1,$i,$altezza,$colore_linea);
            }
            for (
    $i=1;$i<$perturba;$i++) {
                
    $temp = array(rand(1,$larghezza),rand(1,$altezza));
                
    imageline($im,$temp[0],$temp[1],$temp[0],$temp[1],$colore_testo);
            }
            
    imagestring($im553,  $codice$colore_testo);
                
    $rand_name rand(1000,date("dmYHms")) . substr(microtime(), 24) . ".jpg";
                
    imagejpeg($im$_SERVER["DOCUMENT_ROOT"] . $dir_img $rand_name20);
                
    // .............................
                
    $_SESSION['code_img'] = $codice;
                
    $_SESSION['name_img'] = $rand_name;
    // END function Code_Img
    //------------------------------------------------------------------------------------
    function Code_Img_Destroy($dir_img) {
        
    $dir $_SERVER["DOCUMENT_ROOT"];
        if (
    file_exists($dir $dir_img $_SESSION['name_img']) == TRUE ){
            if (
    is_writable($dir $dir_img $_SESSION['name_img'])){
                
    unlink ($dir $dir_img $_SESSION['name_img']);
                
    //...........................
                
    unset($_SESSION['code_img']);
                unset(
    $_SESSION['name_img']);
                
    $dir_img NULL;
            }
        }
    // END function Code_Img_Destroy
    //------------------------------------------------------------------------------------
        
    if ( $_SERVER['REQUEST_METHOD'] == 'POST' && array_key_exists('code_img'$_POST) ) {
        if (isset(
    $_SESSION['name_img'])) {
            if (
    $_POST['code_img'] == $_SESSION['code_img']) {
                echo 
    "Il codice è coretto :-)
    "
    ;
                
    // Elimina: sessioni, foto, dir
                
    Code_Img_Destroy($dir_img);
                
    // Termia o reindirizza o etc...
            
    } else {
                echo 
    "Il codice è errato :-(
    "
    ;
                
    // Elimina: sessioni, foto e dir
                
    Code_Img_Destroy($dir_img);
                
    // Riparti
                
    Code_Img($dir_img);
            }
        }
    } else { 
    // Allo start
        
    Code_Img($dir_img);
    }
    ?>
    <?php 
    if (isset($_SESSION['name_img'])) { ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
        [img]code/<?= $_SESSION['name_img']; ?>[/img]
        <input name="code_img" type="text" value="">
        <input name="submit" type="submit" value="INVIA">
    </form>
    <?php ?>

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    281
    Originariamente inviato da cichity74
    [FONT=courier new]
    Per chiunque possa ritenerlo utile
    p.s: Di nuovo grazie a marketto per il contributo
    ho chiaramente tagliato tutta la parte che riguarda il codice, comunque ecco quello che ho fatto:
    copia incolla di questo codice in un file chiamato "image.php"
    poi ho creato una pagina chiamata "test.php" dove, a parte le solite cose, ho inserito
    <img src=image.php?codice=4544>

    il problema è che mettendo nel browser la pagina "test.php" mi compare il riquadro dell'immagine ma non c'è nessuna immagine.......

  7. #7
    Dovresti dare un paio di informazioni, tipo che sistema operativo hai, versione di php e eventuali errori che ti da...

    Se sei sotto windows devi abilitarle le librerie GD


  8. #8
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    281
    Originariamente inviato da pugia
    Dovresti dare un paio di informazioni, tipo che sistema operativo hai, versione di php e eventuali errori che ti da...

    Se sei sotto windows devi abilitarle le librerie GD

    winxp pro sp2 in inglese, e per testarlo in locale ho usato easyphp 1.7.

    come si abilitano le librerie gd?

    grazie mille per l'aiuto

  9. #9
    nel php.ini devi trovare questa frase
    codice:
    extension=php_gd.dll
    e devi modificalra insieme alle due righe successive in modo che diventi così
    codice:
    ;extension=php_gd.dll
    ;extension=php_gd_gif.dll
    extension=php_gd2.dll

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    281
    Originariamente inviato da pugia
    nel php.ini devi trovare questa frase
    codice:
    extension=php_gd.dll
    e devi modificalra insieme alle due righe successive in modo che diventi così
    codice:
    ;extension=php_gd.dll
    ;extension=php_gd_gif.dll
    extension=php_gd2.dll
    modificato, riavviato apache, ma ancora non viene visualizzata......

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.