Visualizzazione risultati 1 fino 9 di 9

Discussione: Dimensione in pixel di una stringa

  1. #1
    aldonet non è connesso Utente giovane
    Data registrazione
    27-02-2003
    Messaggi
    61

    Predefinito Dimensione in pixel di una stringa

    Ciao a tutti, avrei un problema...
    mi serve conoscere la dimensione di una stringa in pixel x evitare l'overflow in una tabella...

    In parole povere uso la funzione imagettfbbox()

    Questa funzione restituisce un array dove il dato che mi serve si trova nel campo 2...

    La cosa strana e' che in locale funziona tutto correttamente mentre in remoto no!!
    Ovvero se inserisco 2 stringhe che a video occupano lo stesso spazio in locale ho 2 valori in pixel uguali mentre in remoto no!!

    Codice:
    $font="georgia.ttf";
    $stringa1="AAAAAAAAAAAAAAAAAAAA";
    $stringa2="iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii";
    $size1 = imagettfbbox(9,0,$font,$stringa1);
    $size2 = imagettfbbox(9,0,$font,$stringa2);
    echo"$size1[2],$size2[2]";
    in locale ottengo: 178,178
    in remoto invece: 159,134

    Come mai questa differenza????
    Spero in un vostro aiuto.... Grazie

  2. #2
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    1) hai uploadato il file del font georgia.ttf anche su AV? e in entrambe le situazioni (locale/remoto) i ttf si trovano nella stessa cartella dello script php?

    2) calcola cmq che le librerie GD e FreeType avranno molto probabilmente una versione diversa da quella che hai tu!

    ma penso sia più un problema di font.
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  3. #3
    aldonet non è connesso Utente giovane
    Data registrazione
    27-02-2003
    Messaggi
    61

    Predefinito

    Grazie x la risposta...
    In remoto il font si trova nella stessa cartella dello script....
    In locale, non capisco xche', non riesce a caricarlo dalla cartella dello script ma devo dare il percorso completo "C:\WINDOWS\Font\georgia.ttf" che poi e' lo stesso uploadato in remoto...

    Bhe, non so da cosa derivi il problema... e' possibile che sia anche un problema di versione delle librerie GD quello che non capisco e' come mai le stringhe che a video visualizzo della stessa dimensione in pixel mi restituisca valori diversi...
    Mentre in locale i pixel delle stringhe sono uguali (come deve essere...)

    Ovviamente il carattere che utilizzo nella stringa stampata a video e' lo stesso (georgia.ttf)

    Altri suggerimenti?

  4. #4
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Che dire...
    Fai così almeno scopri che versioni hai installato di GD + FreeType.

    Però non mi è chiarissimo questa frase che hai ripetuto:
    i pixel delle stringhe sono uguali (come deve essere...)
    "come deve essere.." perché?
    cos'è una regola matematica che 20 'A'
    DEVONO avere la stessa larghezza in pixel di 45 'i' con Georgia?
    dove sta scritto?
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  5. #5
    aldonet non è connesso Utente giovane
    Data registrazione
    27-02-2003
    Messaggi
    61

    Predefinito

    Hai ragione, forse mi sono espresso male... :)

    Allora impostando il carattere georgia a 9pt la stringa che visualizzo a video di AAAAAAAAAAAAAAAAAAAA occupa lo stesso spazio di iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii (di conseguenza i pixel della prima stringa devono essere uguali a quelli della seconda)
    Impostando il primo parametro della funzione imagettfbbox() a 9 dovrei ottenere i pixel della stringa... ma mentre in locale ottengo 2 valori uguali (quello che appunto mi aspetto) in remoto con gli stessi parametri non succede....

    E questo e' alquanto strano xche' i valori in pixel delle 2 stringhe (occupando lo stesso spazio a video e quindi lo stesso numero di pixel) dovrebbero essere uguali ma non lo sono... :(

  6. #6
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Beh intanto c'è ancora questo in sospeso, ti sei dimenticato almeno di riferircele:
    Citazione Originalmente inviato da heracleum
    Che dire...
    Fai così almeno scopri che versioni hai installato di GD + FreeType.
    E se proprio vuoi fare la prova del nove, fai così:
    quello scriptino di prova printava SOLO il risultato delle due larghezze e lo hai provato sia in loc. che su AV.
    Fai la stessa cosa con uno script simile, ma che OLTRE a misurare le larghezze di AAA.. e iii.. PRINTI in un'immagine generata da GD le due stringhe a confronto, così si vede anche palesemente a video come mai dovrebbe esserci questa differenza con il font Georgia.
    Se ci vuoi far partecipi di questo test dovresti farci vedere l'immagine risultato della prova in locale (ovviamente) così possiamo confrontarla con il risultato online (dacci il link).

    L'immagine risultante dovrebbe printare le due stringhe così:
    AAAAAAAAAAAAAAAAAAAA
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

    (questo è proprio il font Georgia)

    (non sembrano lunghi uguali almeno a questa grandezza)

    probabilmente la differenza starà in delle misure particolari di DEFAULT che magari di versione in versione hanno cambiato, per es. la spaziatura orizzontale tra carattere e carattere (non ricordo il termine tecnico) o altre impostazioni di precisione o qualità...

    Poi calcola che vengono eseguite probabilmente in Sistemi Operativi diversi!
    Tu cosa hai? WinXP? qui su av penso abbiano Unix i server.

    Se ti va di rimboccarti le maniche per questo semplice test, facci sapere altrimenti la vedo dura aiutarti
    Ultima modifica di heracleum : 31-12-2005 alle ore 01.25.28
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  7. #7
    aldonet non è connesso Utente giovane
    Data registrazione
    27-02-2003
    Messaggi
    61

    Predefinito

    GD Support: enabled
    GD Version: bundled (2.0.15 compatible)
    FreeType Support: enabled
    FreeType Linkage: with freetype
    GIF Read Support: enabled
    JPG Support: enabled
    PNG Support: enabled
    WBMP Support: enabled
    XBM Support: enabled


    Ho fatto un'altra prova... in effetti con size=4 quelle 2 stringhe non hanno la stessa dimensione... aggiungendo 3 "i" ottengo una stringa di dimensione uguale a quella delle "A"...
    Bene, ho calcolato i pixel con la funzione imagettfbbox() e mi ha restituito 2 bei 239!!!!
    Appena pero' ho aggiunto una stringa di "O" di dimensioni a video uguali alle altre 2 srtinghe ecco un valore diverso!!!
    Sembra che alcuni caratteri vengono visualizzati con dimensione in pixel diversa da quella calcolata...
    Boh..... cmq io uso Win XP... credo che se un carattere occupa da 10px lo fa in qualsiasi SO no??
    Grazie di nuovo...

  8. #8
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Bah, ogni S.O. ha la sua gestione dei font, che ricorda non sono altro che dei POLIGONI! (glyphs) quindi ognuno la geometria se la vede un po' come gli pare a lui, soprattutto non puoi fare affidamento su "coincidenze astrali" di pixel
    Certo dipende da quanto GD e Freetype chiedono al sistema..

    Tra l'altro sul PC hai una versione di GD molto più arretrata di quella di AV che è:
    GD Support enabled
    GD Version bundled (2.0.28 compatible)
    FreeType Support enabled
    FreeType Linkage with freetype

    Sinceramente hai la peggior versione di GD che si possa immaginare non puoi neanche scrivere una GIF perché in quel periodo c'erano problemi di licenza dalla .28 in poi è tornato tutto ok.

    Prova se vuoi a mettere la .28 se i pixel continuano a differire vuol dire che come sospetto è dovuto alla differenza di SO, oppure cerca bene su google.. i bug scappano sempre, soprattutto se utilizzi versioni vecchiotte..
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  9. #9
    aldonet non è connesso Utente giovane
    Data registrazione
    27-02-2003
    Messaggi
    61

    Predefinito

    Adesso provo a mettere una versione + recente di GD...
    Cmq se dovesse essere un problema di SO c'e' un altro metodo x tagliare una stringa in modo tale da rientrare dentro una tabella di larghezza fissata??
    Ho provato tagliando la stringa dopo un certo numero di caratteri ma ovviamente ci sono caratteri che occupano + spazio di altri e l'effetto non e' dei migliori...
    utilizzare un font con larghezza del carattere fissa la vorrei escludere...

Regole di scrittura

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