Visualizzazione risultati 1 fino 10 di 10

Discussione: [GD] Creare angoli arrotondati

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito [GD] Creare angoli arrotondati

    Buonasera,
    avrei l'esigenza di creare angoli con i bordi tondi (specie questo) utilizzando PHP, studiando un po' imagearc() e imagefilledarc() sono riuscito a buttar giù un po' di codice...purtroppo il risultato non è quello voluto...il codice è il seguente:
    Codice PHP:
    <?php

    //153 204 255

    $img = imagecreate(15,15);
    imagecolorallocate($img,153,204,255);

    //$background = imagecolorallocate($img,153,204,255);
    $cont = imagecolorallocate($img,51,187,255);
    $c = "7,5";

    imagefilledarc($img, $c, $c, 12, 12, 180, 90, $cont, IMG_ARC_EDGED);

    Header("Content-type: image/png");
    imagepng($img);
    imagedestroy($img);

    ?>
    Il Risultato ottenuto lo potete visualizzare qui...come potete ben vedere è tutt'altro che quello che voglio io...mi sapreste aiutare a risolvere?
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    Guest

  3. #3
    Guest

  4. #4
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    Mi dispiace...già avevo visto quell'articolo purtroppo ciò che fa non è altro che arrotondare gli angoli di un immagine...
    Codice PHP:
    <?php
    //Immagine che vogliamo arrotondare
    $i = imagecreatefromjpeg("immagine.jpg");
    //Colore dello sfondo
    $sfondo = imagecolorallocate($i, 227, 243, 255);
    $r = 40; //Misura del raggio in pixel
    //Prende larghezza e altezza dell'immagine
    $w = imagesx($i);
    $h = imagesy($i);
    Citazione Originalmente inviato da sIM Visualizza messaggio
    sIM ho bisogno di creare un immagine con le GD no tramite semplice CSS (toninosite) o JavaScript (curvycorners)...

    Cosa non è chiaro nella frase "Creare angoli rotondi con PHP e GD dal nulla"?
    Apprezzi l'aiuto? Offrimi un caffè!

  5. #5
    Guest

    Predefinito

    Ma sei sicuro? Io avevo letto questo nel codice:
    Codice PHP:
    <?php angoli('a', "#213C67");?>
    O.o Ciauuu! ^^

    Edit: Provato invece?:
    http://www.google.it/search?q=round+corners+php
    http://www.assemblysys.com/dataServi...dedCorners.php
    Ultima modifica di sIM : 22-05-2009 alle ore 19.36.48

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da sIM Visualizza messaggio
    Ma sei sicuro? Io avevo letto questo nel codice:
    Codice PHP:
    Codice PHP:
    <?php angoli('a', "#213C67");?>
    Una semplice funzione in php, non da per scontato che usi le GD... Vedi bene nel codice...

  7. #7
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Citazione Originalmente inviato da sIM Visualizza messaggio
    Ma sei sicuro? Io avevo letto questo nel codice:
    Codice PHP:
    <?php angoli('a', "#213C67");?>
    O.o Ciauuu! ^^

    Edit: Provato invece?:
    http://www.google.it/search?q=round+corners+php
    http://www.assemblysys.com/dataServi...dedCorners.php
    Citazione Originalmente inviato da nokiagames Visualizza messaggio
    Una semplice funzione in php, non da per scontato che usi le GD... Vedi bene nel codice...
    Ha ragione nokiagames, quella di toninosite è una funzione (da lui creata) che permette di creare angoli rivolti verso l'altro o il basso (a o b) con un determinato colore (#colore) e non ha nulla a che fare con le librerie GD...mentre io devo creare angoli dal nulla...sIM posso chiederti il favore di postare solo link e/o codici che fanno ciò che voglio?

    I link che mi hai dato arrotondano gli angoli a delle immagini...ribadisco nuovamente che devo creare un immagine con GD SENZA utilizzare immagini di terze parti.
    Apprezzi l'aiuto? Offrimi un caffè!

  8. #8
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    Codice PHP:

    <?php

    $img
    = imagecreate(15,15);

    $background = imagecolorallocate($img,153,204,255);
    $cont = imagecolorallocate($img,51,187,255);
    $c = "7";
    imagearc($img,$c, $c, 15, 15, 0, 90, $cont);
    imagefilltoborder($img,14,14,$cont,$cont);

    Header("Content-type: image/png");
    imagepng($img);
    imagedestroy($img);

    ?>
    il codice disegna un arco senza riempirlo, e poi colora l'esterno ovvero il poligono che viene a formarsi dal contatto tra l'arco e i bordi dell'immagine

    l'unico problema è azzeccare un colore che non sia già presente nell'immagine altrimenti imagefilltoborder() si confonde

  9. #9
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Ottimo il codice l'ho perfezionato un po' è funge...però ora dimmi una cosa...se io volessi capovolgere l'arco come dovrei fare?

    Ho letto qui che 0° corrisponde al numero 3 sull'orologio...quindi ho fatto vari test per capovolgere o riflettere orizzontalmente l'arco ma non ci riesco...mi potresti dare una mano?
    Apprezzi l'aiuto? Offrimi un caffè!

  10. #10
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    imagearc($img,$c, $c, 15, 15, $A,$B, $cont);

    con $A=0 && $B=90 otteniamo l'arco dell'esempio precedente

    ogni volta che incrementi $A e $B di 90 esegui una rotazione dell'arco in senso orario

    ovviamente devi anche spostare il punto di riempimento perchè sia sempre un pixel tra il bordo (il più vicino) dell'immagine e l'arco

    poi devi anche ricalcolare $c
    Ultima modifica di AlexKidd : 26-05-2009 alle ore 02.00.02

Regole di scrittura

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