Visualizzazione risultati 1 fino 13 di 13

Discussione: Creare sfondo sfumato con libreria GD

  1. #1
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito Creare sfondo sfumato con libreria GD

    Salve,

    Scrivo questo messaggio perché, come da titolo, vorrei sapere se in php, utilizzando la libreria GD per creare un'immagine, esiste la possibilità che l'immagine creata abbia uno sfondo sfumato? ( Ad esempio: la classica sfumatura di colori creata con lo strumento sfumatura di photoshop ) o esiste un'altro metodo per creare una sfumatura?

    Non saprei se mi sono spiegato bene.

    P.S.: Dimenticavo di dirvi che, prima di postare o cercato, sia sul forum, che su google ma senza risultato.
    Ultima modifica di sevenjeak : 02-06-2010 alle ore 16.23.57

    Sevenjeak
    Software developer and much more

  2. #2
    Guest

    Predefinito

    Ciao SevenJeak!
    E' possibile creare sfumature con i CSS e Javascript come puoi leggere
    http://freedance.blogosfere.it/2006/...-sfumatur.html ( termini di ricerca già impostati )

  3. #3
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Cosa centra questo con la creazione di un'immagine con sfondo sfumato?

    Io veramente avrei bisogno di creare un'immagine con sfondo sfumature, no dei semplice elementi html, perché in futuro la dovrei poter salvare in formato png.

    Con altro metodo intendevo, se ottenere questo risultato con la libreria gd non è possibile, in che altro modo potrei ottenere lo stesso risultato.
    Ultima modifica di sevenjeak : 03-06-2010 alle ore 09.49.20

    Sevenjeak
    Software developer and much more

  4. #4
    Guest

    Predefinito

    Purtroppo una funzione proprietaria non esiste però è possibile emulare l'effetto usando classi già pronte. Cercando ho trovato su questo sito uno script che sembrerebbe che faccia al caso tuo ( http://planetozh.com/blog/my-project...gradient-fill/ ). Oppure anche su PhpClasses se ne trovano alcuni ( http://www.phpclasses.org/search.htm...h=1&advanced=1 )

  5. #5
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Ho visitato PHPClassed, non ho trovato nulla di cosa vorrei fare io.

    Se è possibile mi aiuterebbe il primo link che ai postato, se non fosse per il fatto che crea solo sfumatura verticali, orizzontali, ma diagonali? ( cioè una sfumatura che va dall'angolo sinistro in basso all'angolo destro in'altro )

    Sto riprovando ha cercare su internet, ma non trovo niente, è possibile creare una sfumatura come detto da me qui sopra?

    P.S.: Sto pensando, ma se invece di creare la sfumatura come io la voglio creo una sfumatura orizzontale, come spiega il primo link postato da te, e la ruoto, dovrebbe andare bene? purtroppo io ora non ho il tempo di provarlo
    Ultima modifica di sevenjeak : 03-06-2010 alle ore 19.43.34

    Sevenjeak
    Software developer and much more

  6. #6
    Guest

    Predefinito

    Ci sto lavorando per aggiungerla e per ora ho fatto ne ho fatta solo una metà, però il meccanismo l'ho capito all'incirca... appena finisco edito il messaggio e ti dico cosa aggiungere.

    EDIT:
    fatto

    Dopo questo
    Codice PHP:
    function fill($im,$direction,$start,$end) {

    switch(
    $direction) {
    aggiungi
    Codice PHP:
    case 'oblique':
    $width = imagesx($im);
    $height = imagesy($im);
    $line_numbers = imagesx($im)*2;
    $line_width = imagesy($im);
    list(
    $r1,$g1,$b1) = $this->hex2rgb($start);
    list(
    $r2,$g2,$b2) = $this->hex2rgb($end);
    break;
    E dopo questo
    Codice PHP:
    if ( "$old_r,$old_g,$old_b" != "$r,$g,$b")
    $fill = imagecolorallocate( $im, $r, $g, $b );
    switch(
    $direction) {
    aggiungi
    Codice PHP:
    case 'oblique':
    imagefilledpolygon($im, array (
    $i-$width,0,
    $width,$height*2-$i,
    $width,0
    ),3,$fill);
    //echo "$height - $i <br/>";
    break;
    Se ti serve in direzione obliqua opposta fammi un fischio
    Ultima modifica di ptm : 03-06-2010 alle ore 20.56.24

  7. #7
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Scusa la domanda, ma è da ieri che non ho potuto provo lo script e a quando pare non riesco a farlo funzionare, per ora, prima di provare lo script con le modifica apportate da te, ho provato a creare una semplice sfumatura verticale.

    Ho un file index.php con questo semplice codice codice:
    Codice PHP:
    require_once("gd_fill.php");

    $width = 100;
    $height = 150;
    $direction = "vertical";
    $startcolor = "#CC3366";
    $endcolor = "#6666FF";

    header("Content-type: image/png");

    $img = imagecreatetruecolor($width, $height);

    $img = new gd_gradient_fill($width,$height,$direction,$startcolor,$endcolor, 0);

    imagepng($img);
    Mentre nel file gd_fill.php ho semplicemente incolato questo codice

    Il codice non mi da nessun errore, solo che non mi visualizza l'immagine
    Ultima modifica di sevenjeak : 04-06-2010 alle ore 12.10.10

    Sevenjeak
    Software developer and much more

  8. #8
    Guest

    Predefinito

    Ho verificato qui su AV e ho notato che da un pochino di problemi... dovrei averli risolti con le modifiche che ho fatto
    Qui il file -> http://ptm.altervista.org/gradient/gradient.txt
    E il file di test che ho usato è questo
    Codice PHP:
    <?php
    include("gradient.php");
    $img= new gd_gradient_fill(200,200,'oblique','#ff0000','#ffff00');
    imagepng($img->image);
    ?>
    Non c'è bisogno che imposti l'header visto che vine impostato direttamente nella funzione all'interno della classe...

  9. #9
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Ok, ora funziona, per quando riguarda ad invertire la sfumatura, sto provando ora, ma non riesco a capire cosa dovrei modificare, come potrei modificarlo?

    Sevenjeak
    Software developer and much more

  10. #10
    Guest

    Predefinito

    TI ho modificato il file che ho linkato prima. Il nome da usare è oblique2. Naturalmente se ti serve cambiare ancora il senso della sfumatura ti basta modificare l'ordine dei colori inseriti nella funzione.

  11. #11
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Per essere sicuri, con link di prima indenti questo.

    Nello switch hai aggiunto questa parte di codice?
    Codice PHP:
    case 'oblique2':
    $width = imagesx($im);
    $height = imagesy($im);
    $line_numbers = sqrt(($width*$width)+($height*$height));
    $line_width = imagesy($im);
    list(
    $r1,$g1,$b1) = $this->hex2rgb($start);
    list(
    $r2,$g2,$b2) = $this->hex2rgb($end);
    break;
    No, perché vedendo il codice mi sembra uguale a quello presente nel case 'oblique', cmq, potarsi anche che mi sbagli, per questo lo sto provando proprio ora
    Ultima modifica di sevenjeak : 05-06-2010 alle ore 14.51.39

    Sevenjeak
    Software developer and much more

  12. #12
    Guest

    Predefinito

    Si, si intendo quello

    Qui
    Codice PHP:
    case 'oblique':
    case
    'oblique2':
    $width = imagesx($im);
    $height = imagesy($im);
    $line_numbers = sqrt(($width*$width)+($height*$height));
    $line_width = imagesy($im);
    list(
    $r1,$g1,$b1) = $this->hex2rgb($start);
    list(
    $r2,$g2,$b2) = $this->hex2rgb($end);
    break;
    Ho aggiunto in pratica solo case 'oblique2' perchè il calcoli non cambiavano
    Mentre di nuovo ho aggiunto
    Codice PHP:
    case 'oblique2':
    imagefilledpolygon($im, array (
    $width,$height,
    $width,$i-$height,
    $i-$width,$height
    ),3,$fill);
    break;
    Che è il pezzo che va a 'disegnare' di fatto la sfumatura

  13. #13
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Non avevo notato quel pezzo, dovrò cercare di studiarmi meglio la classe.

    Cmq grazie per l'aiuto

    Sevenjeak
    Software developer and much more

Regole di scrittura

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