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

Discussione: Problema con GD

  1. #1

    Problema con GD

    Salve a tutti

    ieri ho frugato nel forum e qualcosa sulle gd ho trovato ma siccome continuo ad avere il solito errore volevo chiedere se potevo postare il codice per avere qualche aiuto da voi che ne sapete MOLLLTO più di me!


    Grazie



    Rudy
    www.queenarena.com

  2. #2
    ma se magari invece di chiedere se puoi postare il codice.. illustri prima il problema ed in particolare riporti il messaggio d'errore........

  3. #3
    Allora vi illustro bene il problema:

    ho una tabella nel databse con una serie di record e ogni record ha un foto.

    Bene: mi servirebbe creare una lista di queste foto a 30 x 30 senza doverle avere due volte sul server.

    Questa operazione si basa su immagini originali della stessa dimensione 250 * 250

    LO stesso procedimento mi servirebbe per altre foto che però non sono tutte uguali e quindi bisognerebbe fare anche un resample.

    Bene ho provato ad usare gli esempi che ho trovato qua nel forum ma mi danno sempre errore di 2 tipi: o una serie di caratteri in fila invece dell'immagine o un errore di divide by zero.

    La cosa che mi preme di più pero' è capire qual'è la successione dei comandi per manipolare dell foto: la prima operazione è caricare la foto originale con imgcreatefromjpeg poi usare imagecreatetruecolor e poi imagejpeg oppure mi sbaglio?

    MI fareste un favorone se riusciste a farmi capire il meccanismo

    Grazie e scusate la lunghezza del post


    Rudy
    www.queenarena.com

  4. #4
    quello che segue è parte dello script che uso sul mio sito:
    Codice PHP:
    function LoadJpeg ($imgname) {
    $size=getimagesize($imgname);
    $src_img=imagecreatefromjpeg($imgname);
    $larg=ceil($size[0]/10);
    $alte=ceil($size[1]/10);
    $im=Imagecreatetruecolor($larg,$alte);
    imagecopyresampled($im,$src_img,0,0,0,0,$larg,$alte,$size[0],$size[1]);
    return 
    $im;
    }
    if (
    file_exists($_GET['immagine'])){
    $immagine=LoadJpeg($_GET['immagine']);
    header("content-type: image/jpeg");
    imagejpeg($immagine,"",40);
    imagedestroy($immagine);
    } else {
    echo 
    "il file non esiste";

    Questo però crea le miniature grandi 1/10 dell'originale (solo jpeg)... nel tuo caso, visto che conosci a priori le dimensioni iniziali e finali, lo script si semplifica...
    Se in output ricevi una serie di lettere e perchè ti manca
    header("content-type: image/jpeg");
    che devi inserire prima di qualsiasi altro output!

  5. #5
    grazie della risposta.

    Ho provato ma mi dice sempre che il file non esiste e "resource ID8".
    Considera che io lavoro sulla variabile $estratta dal Database che contiene il apth ad una immagini sul server.

    Dove sbaglio?

    sarà perchè ho un percorso nel record del DB?

    Grazie


    Rudy
    www.queenarena.com

  6. #6
    evidentemente il file non esiste nel path che gli passi:
    fai un echo della variabile che dovrebbe contenere il path
    i path sono relativi o assoluti?
    fai un esempio dei path e di come sono impostate le cartelle...
    sei su win o su linux?
    i path sono corretti, tenendo conto della posizione del file dello script (se relativi)?
    Come passi il contenuto della request al DB alla variabile $imgname?
    Posta almeno parte del codice!

  7. #7
    Ciao


    allora il server è su linux con apache e roba varia con ultime release di GD.

    Allora io spero di avere capito bene cosa fare, considera che sono proprio principiante e che sto trovando duro da matti! .

    il path si viene a trovare nella variabile $img ed è una cosa relativa tipo pics/cartella/file.jpg

    ti posto una parte del codice:

    ****


    <?

    require_once("admin/config.inc.php"); ?>

    <table><tr>
    <?
    $result = mysql_query("SELECT img FROM Albums WHERE id='5' ");


    function LoadJpeg ($imgname) {
    $size=getimagesize($imgname);
    $src_img=imagecreatefromjpeg($imgname);
    $larg=ceil($size[0]/10);
    $alte=ceil($size[1]/10);
    $im=Imagecreatetruecolor($larg,$alte);
    imagecopyresampled($im,$src_img,0,0,0,0,$larg,$alt e,$size[0],$size[1]);
    return $im;
    }
    if (file_exists($_GET['immagine'])){
    $immagine=LoadJpeg($_GET['immagine']);
    header("content-type: image/jpeg");
    imagejpeg($immagine,"",40);
    imagedestroy($immagine);
    } else {
    echo "il file non esiste";
    }


    list($img) = mysql_fetch_row($result);

    echo LoadJpeg ($img);



    ?>



    </tr>
    </table>

    ovviamente avrò fatto più errori di un bambino alle elementari ma mi preme capire il meccanismo!


    Grazie di tutto

    Rudy
    www.queenarena.com

  8. #8
    per il codice usa il tasto PHP!
    innanzitutto controllerei se la variabile $img contiene il path giusto... cioè deve puntare all'immagine relativamente a dove sta lo script

  9. #9
    Allora lo script è al di fuori delle cartelle dove si trova l'immagine;

    considera che la variabile "img" che risulta dalla query contiene "pics/cartella/file.jpg mentre lo script è fuori dalla cartella, nella root.

    Però estraendo il valore della path dovrebbe trovarlo.

    Invece mi dice che il file non esiste: se provo a fare un echo con il tag IMG me la visualizza quindi il path è giusto.

    La grana è che non riesco a fare un tubo! E la cosa che mi frustra è non riuscire a capire dove sta l'inghippo.

    La funzione va bene come la richiamo? LoadJpeg($img) però cos' facendo la visualizza o devo usare anche il tag IMG?


    Argh non ne posso +!!!!


    Rudy
    www.queenarena.com

  10. #10
    Dividi il codice in 2 files:
    nel primo fai la query al db e chiami il secondo file (per ogni immagine crei la nuova miniatura) passandogli il contenuto della variabile $img
    nel secondo crei la miniatura e la stampi
    guarda come ho fatto io: http://www.andreapaiola.it/tutorials.php (devi scrollare un pochettino...)
    le differenze principali col tuo script è che io non utilizzo db e faccio un ciclo for...

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.