• User Newbie

    creazione immagini

    salve ragazzi, sono nuovo di questo forum; nel salutare tutti volevo porvi il mio problema: ho cominciato a mettere mano alle funzioni per la creazione delle immagini dinamiche; creo senza problemi le immagini che mi servono e le visualizzo a video con uno script php; tuttavia vorrei capire come si fa a salvare un'immagine. cioè una volta che chiudo lo script php ora come ora non ho traccia dell'immagine che ho appena visualizzato a video, e se volessi rivederla dovrei rilanciare lo script;
    so che c'è il modo di salvare i file ma non so come si fa; sapete aiutarmi?
    grazie ciao ciao


  • Super User

    funzione da usare se stai trattando una jpg:
    bool imagejpeg ( resource image [, string filename [, int quality]] )

    manuale:
    http://it2.php.net/manual/it/function.imagejpeg.php

    buon divertimento :ciauz:


  • User Newbie

    metti caso che il codice sia questo (in pratica disegna una maglietta blu):

    $image = imagecreate(200,200);
    $white = imagecolorallocate($image, 255,255,255);
    $blue = imagecolorallocate($image, 0,0,255);
    imageline($image,60 , 50, 140, 50, $blue);//bordo sup
    imageline($image,60 , 150, 140, 150, $blue);//bordo inferiore
    imageline($image,60 , 50, 30, 90, $blue);//manica sinistra
    imageline($image,140 , 50, 170, 90, $blue);//manica destra
    imageline($image,30 , 90, 60, 90, $blue);//congiungimento manica sinistra
    imageline($image,170 , 90, 140, 90, $blue);//congiungimento manica destra
    imageline($image,60 , 90, 60, 150, $blue);//lato sinistro
    imageline($image,140 , 90, 140, 150, $blue);//lato destro
    imagefill($image,100,100,$blue);

    a questo punto setto $filename = 'prova.gif';
    se faccio
    echo '';
    mi stampa senza problemi l'immagine;

    se poi faccio
    imagegif($image,$filename);
    non gliene frega nulla e non mi salva niente (almeno non nella cartella in cui sto lavorando)

    che devo fare?


  • Super User

    se non ricordo male ci sono i diritti sull'algoritmo per maneggiare le gif e non è escluso che questo imponga delle limitazioni sulle funzionalità allinterno delle librerie gd.

    prova a fare la stessa cosa con una jpg.


  • User Attivo

    Dal manuale php:

    Note: Since all GIF support was removed from the GD library in version 1.6, this function is not available if you are using that version of the GD library. Support is expected to return in a version subsequent to the rerelease of GIF support in the GD library in mid 2004. For more information, see the GD Project site.

    Quindi ti conviene salvare in un'altro formato:

    imagepng(), imagewbmp(), imagejpeg()


  • User Newbie

    ok, ammettiamo che abbiate ragione voi, e che quindi ci siano dei problemi con le gif (personalmente ho qualche perplessità, però...);
    ipotizziamo che ora il codice sia questo:

    header("Content-type: image/jpeg");
    $image = imagecreate(200,200);
    $white = imagecolorallocate($image, 255,255,255);
    $blue = imagecolorallocate($image, 0,0,255);
    imageline($image,60 , 50, 140, 50, $blue);
    imageline($image,60 , 150, 140, 150, $blue);
    imageline($image,60 , 50, 30, 90, $blue);
    imageline($image,140 , 50, 170, 90, $blue);
    imageline($image,30 , 90, 60, 90, $blue);
    imageline($image,170 , 90, 140, 90, $blue);
    imageline($image,60 , 90, 60, 150, $blue);
    imageline($image,140 , 90, 140, 150, $blue);
    imagefill($image,100,100,$blue);
    imagejpeg($image,'../img/prova.jpg',100);
    imagedestroy($image);

    non funge lo stesso...
    e c'è da dire una cosa: se alla funzione imagejpeg() passo solo il parametro $images, la funzione va senza problemi, e io vedo tranquillamente l'immagine a video... ovviamente non me la salva; nel momento in cui la sintassi diventa: imagejpeg($image,'../img/prova.jpg',100); quindi immagine sorgente, immagine da salvare e risoluzione, non gli piace più e mi esce questo messaggio di errore:
    L'immagine ?http://10.0.0.254/gestione/admin/prova_img.php? non può essere visualizzata poiché contiene degli errori.

    ragazzi sono 4 giorni che ci sbatto la testa! dove sbaglio? vedete errori che io non vedo? fatemi sapere e aiutatemi grazie!