Visualizzazione risultati 1 fino 5 di 5

Discussione: [PHP/GD] scrivere testo a lunghezza variabile

  1. #1
    Guest

    Predefinito [PHP/GD] scrivere testo a lunghezza variabile

    Ciao!
    Avrei necessitā di scrivere dopo un determinato numero di pixel su un'immagine per non coprirne una parte.
    Fin qui nessun problema, il problema sorge quando il testo č minore di 24 caratteri e la scritta dovrebbe comparire quasi attaccata al margine destro.
    Esempio:


    Qui il testo comprende tutto lo spazio bianco occupabile perchč č di 24 caratteri ma se lo allungo un pochino mi esce, se lo accorcio si avvicina allo spazio nero mentre dovrebbe restare sulla destra.
    C'č qualche funzione per lavorare sulla grandezza del carattere?
    Come posso matematicamente segnare una distanza variabile dal margine destro e non sinistro?

    Grazie ^_^
    Posto qui il mio codice php:
    Codice PHP:
    <?php
    header
    ("Content-Type: image/gif");
    $sfondo = '2.gif'; // 300px x 30px
    $font = 'font/Xtra.ttf';
    $testo = "Platone - Gamma 45454661"; // MAX 24
    $size = 10;
    $lung= strlen($testo);

    $img = imagecreatefromgif($sfondo);
    $color1 = imagecolorallocate($img, 0, 0, 0);
    $color2 = imagecolorallocate($img, 255, 175, 0);
    $x = "140";
    $y = "20";

    imagettftext($img, $size,0,$x,$y, $color1, $font, $testo);
    imagettftext($img, $size,0,$x-1,$y-1, $color2, $font, $testo);
    imagegif($img);
    imagedestroy($img);
    ?>

  2. #2
    Ospite Guest

    Predefinito

    puoi calcolare matematicamente la lunghezza, ma devono essere o tutti caratteri maiuscoli o tutti minuscoli altrimenti il conto viene sgarrato.........

  3. #3
    Guest

    Predefinito

    ...o usare un font a larghezza dei caratteri fissa

  4. #4
    Guest

    Predefinito

    Ok, il mio font č tutto maiuscolo ;)
    come faccio?

  5. #5
    Ospite Guest

    Predefinito

    questo lo uso per le firme per il mio sito.....

    Codice PHP:
    [...]
    $font_dim=100; //variabile che conterrā la dimensione del testo da usare.
    $space=160; // spazio disponibile (in lunghezza) per la scritta.
    $font_largh=$font_dim/1.2;
    $font_largh_tmp=$font_largh*strlen($testo);

    while(
    $font_largh_tmp > $space){
    $font_dim=$font_dim-1;
    $font_largh=$font_dim/1.2; // č un calcolo molto rozzo, va personalizzato a seconda del font......
    $font_largh_tmp=$font_largh*strlen($testo);
    }

    imagettftext($im, $font_dim, 0, 260, 45, $giallo, $font, $testo); //scrivo il testo!
    Ciauz!

Regole di scrittura

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