Problema GD2

Ciao a tutti,

Dei nostri clienti, hanno tradotto in polacco il nostro sito.

In questo sito ho usato la libreria GD2 per creare al volo i tasti del menù.

Detto questo vi espongo il problema.

In base all'IP di chi accede al sito, questo viene visualizzato in Italiano, Inglese o Polacco.

Per italiano viene impostato il charset=ISO-8859-1

per il Polacco ho provato sia ISO-8859-2 che Windows-1250.

Con il secondo ho un risultato ottimo su tutto il sito ma non sui tasti creati "al volo", dove perdo qualche carattere.

il tasto viene richiamato come una normale immagine

<img src="tasto.php?testo=testo%20di%20prova&roll=off" />

Sapete se devo (e se è possibile) impostare il charset anche nel file TASTO.php?

file TASTO.php
<?php
header("Content-type: image/png");
$text = $_GET["testo"];
$font = 'euraeb.ttf';
$roll = $_GET["roll"];
if ($roll=="off"){
  $im = imagecreatefrompng("tasto_VERT_NORM.png");
  $red= imagecolorallocate($im, 255, 0, 0);
  imagettftext($im, 9, 0, 25, 20, $red, $font, $text);
}
if ($roll=="on"){
  $im = imagecreatefrompng("tasto_VERT_PREM.png");
  $white = imagecolorallocate($im, 255, 255, 255);
  imagettftext($im, 9, 0, 26, 21, $white, $font, $text);
}
if ($roll=="sel"){
  $im = imagecreatefrompng("immagine_base.png");
  $black = imagecolorallocate($im, 0, 0, 0);
  imagettftext($im, 9, 0, 25, 20, $black, $font, $text);

}

imagepng($im);
imagedestroy($im);
?>

Premetto che ho gia provato con

header("Content-type: charset=Windows-1250");

Grazie a chi perderà anche solo qualche minuto per me.

Andrex

inviato 10 anni fa
Andrex
X 0 X

In polacco? corbezzoli  :o

Dunque, tu immetti il font eurab.ttf ma sei sicuro che il ttf abbia la giusta versione dei caratteri al suo interno?

Detto ciò e premettendo che nn sono un esperto di GD, sicuro che la tabella iso giusta sia la 8859-2?

http://czyborra.com/charsets/iso8859.html

risposto 10 anni fa
Marco Grazia
X 0 X

allora,

di font ho provato anche verdana e arial (stesso risultato ovviamente)

il charset che uso è il windows-1250.

risposto 10 anni fa
Andrex
X 0 X

allora,

di font ho provato anche verdana e arial (stesso risultato ovviamente)

il charset che uso è il windows-1250.

che non dovrebbe avere al suo interno il polacco  :-[

risposto 10 anni fa
Marco Grazia
X 0 X

quello è il charset che uso nel sito.. e mi riconosce tutti i caratteri....

Sono i tasti che vengono stampati male!!

cmq ho forzato la lingua del sito in Polacco,

quì puoi arrivare al sito e vedere il risultato.

Andrex

risposto 10 anni fa
Andrex
X 0 X

Hem non si carica  ::)

risposto 10 anni fa
Marco Grazia
X 0 X

Ok si è caricato ... ma ion on parlo polacco per quel che ne so va bene pure così :D

risposto 10 anni fa
Marco Grazia
X 0 X

di sbagliato c'è il secondo carattere del primo tasto in alto a sinistra

e il penultimo carattere del secondo tasto del menù laterale!!

ti posto lo screenshot della porzione di pagina!

risposto 10 anni fa
Andrex
X 0 X

Guarda a questo punto credo solo che non trovi il carattere nella tabella data.

risposto 10 anni fa
Marco Grazia
X 0 X
Guarda a questo punto credo solo che non trovi il carattere nella tabella data.

il fatto è che se scrivo del testo normale, in una semplice pagina html, il carattere viene stampato correttamente, se invece passo la stessa stringa al tasto.php il carattere non viene trovato e nell'immagine di output ho il risultato che ho postato sopra!!!

cmq grazie lo stesso per l'interessamento!!

cercherò altre soluzioni!

risposto 10 anni fa
Andrex
X 0 X

Una soluzione ci sarebbe, devi crearti tu una tabella caratteri, oggi se riesco nelle more del mio tempo sempre troppo corto, vado a cercare un vecchio progetto a cui ho partecipato, lì avevamo creato un carattere monotype proprio per scrivere con le GD.

risposto 10 anni fa
Marco Grazia
X 0 X

grande.. sei un mito..  :D

risposto 10 anni fa
Andrex
X 0 X
grande.. sei un mito..  :D

Non esageriamo ;) anche perché sai come si dice: chiedere è lecito, ma una volta ottenuto pottrebbe essere peggio :D

Comunque: questo è un file contenente le impostazioni di base per copiare il testo nell'immagine di destinazione, e si chiama PNGFont.php

<?php
/* PNGFont.php - Libreria di funzioni per i font PNG. 
creata il 7 Agosto 2003 
versione 1.02.00 
ultima modifica: 19 Agosto 2003 

lista funzioni esportate: 
imagepngloadfont() : Carica un font PNG in memoria e restituisce la risorsa. 
imagepngstring()     : Emette una linea di testo su un immagine usando un font PNG.
imagepngbox()      : Emette piu' linee di testo su un immagine usando un font PNG.
   
linking: include('PNGFont.php'); 

Da fare: nulla da segnalare. 

History: 
1.01.00 - Modificata imagepngstring() in modo che possa gestire
          l'allineamento del testo e corretto il calcolo della
          linea di base.

1.02.00 - Creata imagepngbox().
          Alcune correzioni del codice.

* This library is free software; you can redistribute it and/or modify 
* it under the terms of the GNU Library General Public License as 
* published by the Free Software Foundation; either version 2 of the 
* License, or (at your option) any later version. 
* 
* This library is distributed in the hope that it will be useful, 
* but WITHOUT ANY WARRANTY; without even the implied warranty of 
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
* 
* GNU Library General Public License for more details. 
* 
* You should have received a copy of the GNU Library General Public 
* License along with this program; if not, write to the Free Software 
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 
* USA. 

*/ 




// imagepngloadfont() 
// Descrizione: Carica un font PNG in memoria. 
// Autore: CoD
// Special Thanks to: EVA04
// Uso:
//   array = imagepngloadfont (filename, CellWidth, CellHeight, BaseLine);
//      -> filename e' il nome del file del font PNG
//      -> CellWidth e' la larghezza di una cella
//      -> CellHeight e' l'altezza di una cella
//      -> BaseLine e' la posizione della linea di base dei caratteri
//     <- array e' l'array restituito dalla funzione contenente tutti i dati del font
//
// NOTA: i dati CellWidth, CellHeight e BaseLine sono indicati all'interno dell'immagine
//       PNG del font
function imagepngloadfont  ($sLoc_FileName, 
                     $nLoc_CellWidth,
                     $nLoc_CellHeight,
                     $nLoc_BaseLine) 
                     {
                        
   // Siccome devo includere anche dimensioni x e y delle celle, baseline e nome file,
   // uso x e y degli ascii 0 e 1 per memorizzare questi dati
   $aLoc_PNGFont[0][x] = $sLoc_FileName;
   $aLoc_PNGFont[0][y] = $nLoc_BaseLine;
   $aLoc_PNGFont[1][x] = $nLoc_CellWidth;
   $aLoc_PNGFont[1][y] = $nLoc_CellHeight;
   
   // ASCII 2 e' il carattere predefinito per nessun carattere, e' sempre a 1, 1
   $aLoc_PNGFont[2][x] = 1;
   $aLoc_PNGFont[2][y]=  1;
   
   // Inizia la routine di identificazione delle celle:

   // per 7 righe da 1 a 7
   for ($nLoc_Riga=1; $nLoc_Riga <= 7; $nLoc_Riga++) {
   
      // per 32 celle da 0 a 31
      for ($nLoc_Cella=0; $nLoc_Cella <= 31; $nLoc_Cella++) {
         
         // Calcolo il valore ASCII della cella
         $nLoc_ASCII = ($nLoc_Riga * 32) + $nLoc_Cella;
         
         // Calcolo X e Y della cella (angolo SUPERIORE SINISTRO)
         $aLoc_PNGFont[$nLoc_ASCII][x] = 1 + (($nLoc_CellWidth + 1 ) * $nLoc_Cella);
         $aLoc_PNGFont[$nLoc_ASCII][y] = 51 + (($nLoc_CellHeight + 1 ) * ($nLoc_Riga - 1));
         
      }
   }   
   
   // Emetto l'array
   return $aLoc_PNGFont;
}



// imagepngstring() 
// Descrizione: Scrive un testo su un'immagine usando un font PNG. 
// Autore: CoD
// Special Thanks to: Saib
// Uso:
//   boolean = imagepngstring (DestImage, Font, Text, X, Y, Align, R, G, B);
//      -> DestImage e' la risorsa corrispondente all'immagine finale
//      -> Font e' l'array di un font PNG caricato con imagepngloadfont
//      -> X e' la posizione orizzontale in pixel della punto di inserzione del testo
//      -> Y e' la posizione verticale in pixel della punto di inserzione del testo
//     -> Align e' l'allineamento: 0 a sinistra, 1 centrato, 2 a destra.
//      -> R, G, B sono i parametri per il colore del testo
//     <- boolean e' il risultato del'operazione di scrittura
//
function imagepngstring($rLoc_DestinationImage,  
                  $aLoc_FontArray, 
                  $sLoc_Text, 
                  $nLoc_PosX, 
                  $nLoc_PosY, 
                  $nLoc_Alignment,
                  $nLoc_ColorR,
                  $nLoc_ColorG,
                  $nLoc_ColorB) {
   
   // Estraggo le informazioni di partenza dalle prime due posizioni dell'array
   $sLoc_FileName   = $aLoc_FontArray[0][x];
    $nLoc_BaseLine   = $aLoc_FontArray[0][y];
    $nLoc_CellWidth  = $aLoc_FontArray[1][x];
    $nLoc_CellHeight = $aLoc_FontArray[1][y];
   
   // Creo una nuova immagine del font
   $rLoc_FontImage = ImageCreateFromPNG ($sLoc_FileName);
   
   // Cambio il colore del font (Thanks Saib!)
   $nLoc_Black = imagecolorresolve ($rLoc_FontImage, $nero, 0, 0, 0);
   imagecolorset ($rLoc_FontImage, $nLoc_Black, $nLoc_ColorR, $nLoc_ColorG, $nLoc_ColorB);
   
   
   // Calcolo il punto di inserimento y per imagecopymerge
   // sottraendo baseline-1 al punto dato dall'utente
   $nLoc_ResolvedPosY = $nLoc_PosY - ($nLoc_BaseLine-1);
   
   // Calcolo il punto di inserimento x per imagecopymerge
   // a seconda dell'allineamento scelto
   switch ($nLoc_Alignment) {
      case 1:
         $nLoc_ResolvedPosX = round ($nLoc_PosX - ((strlen ($sLoc_Text) * $nLoc_CellWidth)/2));
         break;
      case 2:
         $nLoc_ResolvedPosX = $nLoc_PosX - (strlen ($sLoc_Text) * $nLoc_CellWidth);
         break;
      default:
         $nLoc_ResolvedPosX = $nLoc_PosX;
         break;
   }         
         
   // Per ogni lettera del testo stampo una lettera png
   for ($nLoc_Letter=0; $nLoc_Letter<=strlen ($sLoc_Text)-1; $nLoc_Letter++) {
      
      // Calcolo il valore ascii del singolo carattere
      $nLoc_ThisASCII = ord (substr($sLoc_Text, $nLoc_Letter, 1) );
            
      // Se non rientra nei caratteri stampabili lo sostituisco a quello di
      // default
      if (($nLoc_ThisASCII < 32) OR ($nLoc_ThisASCII > 255)) {
         $nLoc_ThisASCII = 2;
      }

            
      // Copio il disegno corrispondente all'ASCII ricavato nella posizione giusta
      imagecopymerge ( $rLoc_DestinationImage, 
                   $rLoc_FontImage, 
                   $nLoc_ResolvedPosX, 
                   $nLoc_ResolvedPosY,
                      $aLoc_FontArray[$nLoc_ThisASCII][x],
                   $aLoc_FontArray[$nLoc_ThisASCII][y],
                   $nLoc_CellWidth, 
                   $nLoc_CellHeight, 
                   100);
      
      // Vado avanti della larghezza di un carattere
      $nLoc_ResolvedPosX+= $nLoc_CellWidth;
   }
   
   // Tutto bene: completato con successo.
   return true;
}







// imagepngbox() 
// Descrizione: Scrive piu' righe di testo su un'immagine usando un font PNG. 
// Autore: CoD
// Special Thanks to: Karlotto
// Uso:
//   boolean = imagepngbox (DestImage, Font, Text, X1, Y1, X2, Y2, Align, R, G, B);
//      -> DestImage e' la risorsa corrispondente all'immagine finale
//      -> Font e' l'array di un font PNG caricato con imagepngloadfont
//      -> X1 e Y1 Sono le coordinate dell'angolo superiore sinistro della casella di testo
//      -> X2 e Y2 Sono le coordinate dell'angolo inferiore destro della casella di testo
//     -> Align e' l'allineamento: 0 a sinistra, 1 centrato, 2 a destra.
//      -> R, G, B sono i parametri per il colore del testo
//     <- boolean e' il risultato del'operazione di scrittura
//
function imagepngbox($rLoc_DestinationImage,  
                  $aLoc_FontArray, 
                  $sLoc_Text, 
                  $nLoc_PosX1, 
                  $nLoc_PosY1, 
                  $nLoc_PosX2, 
                  $nLoc_PosY2, 
                  $nLoc_Alignment,
                  $nLoc_ColorR,
                  $nLoc_ColorG,
                  $nLoc_ColorB) {


   // Estraggo le informazioni di partenza dalle prime due posizioni dell'array
   $sLoc_FileName   = $aLoc_FontArray[0][x];
    $nLoc_BaseLine   = $aLoc_FontArray[0][y];
    $nLoc_CellWidth  = $aLoc_FontArray[1][x];
    $nLoc_CellHeight = $aLoc_FontArray[1][y];
   
   // Creo una nuova immagine del font
   $rLoc_FontImage = ImageCreateFromPNG ($sLoc_FileName);
   
   // Cambio il colore del font (Thanks Saib!)
   $nLoc_Black = imagecolorresolve ($rLoc_FontImage, $nero, 0, 0, 0);
   imagecolorset ($rLoc_FontImage, $nLoc_Black, $nLoc_ColorR, $nLoc_ColorG, $nLoc_ColorB);
   
   // Calcolo la larghezza della box
   $nLoc_BoxWidth = $nLoc_PosX2 - $nLoc_PosX1;

   // Calcolo il numero massimo di caratteri prima di andare a capo
   $nLoc_MaxChar = round ($nLoc_BoxWidth / $nLoc_CellWidth);
   
   // Calcolo l'altezza della box
   $nLoc_BoxHeight = $nLoc_PosY2 - $nLoc_PosY1;
   
   // Calcolo il numero massimo di linee stampabili
   $nLoc_MaxLine = round ($nLoc_BoxHeight / $nLoc_CellHeight);

   // Inizializzo il contatore di linee
   $numerolinea = 0;
   
   
   // Ora si tratta di prendere segmenti di testo di lunghezza uguale al massimo dei caratteri 
   // stampabili per ogni riga e ricercare in essi il carattere di ritorno a capo e lo spazio.
   
   //Aggiungo in fondo al testo un carattere ritorno a capo, altrimenti il sistema mettera' 
   // l'ultima parola in una riga a parte.
   $sLoc_Text .= "\n";
      
   // Per ciascuna posizione nel testo
   for ($nLoc_InnerPos = 0; $nLoc_InnerPos <= strlen($sLoc_Text); $nLoc_InnerPos++) {
      
      // Prendo una parte di testo di lunghezza MaxChar
      $porzione = substr($sLoc_Text, $nLoc_InnerPos, $nLoc_MaxChar);

      // Cerco la PRIMA occorrenza del carattere \n, cioe' il ritorno a capo
      $lf = strpos($porzione, "\n");
      
      
      if ($lf === false or $lf == 0) { 

         // Non trovato, cerco l'ULTIMA occorrenza del carattere Spazio
         $sp = strrpos($porzione, " ");
         
         if ($sp === false or $sp == 0) { 
            
            // Non trovato: tutta la riga e' un'unica parola, imposto il punto
            // per andare a capo troncando la parola a MaxChar
            $nLoc_SplitPos = $nLoc_MaxChar;
            
         } else {
            // Trovato lo spazio: imposto qui il punto di divisione
            $nLoc_SplitPos = $sp;
         }
                  
      } else {

         // Trovato il ritorno a capo: imposto qui il punto di divisione
         $nLoc_SplitPos = $lf;
      }

      // Divido al punto di divisione impostato e aggiungo il risultato ad un array di linee
      $linea[$numerolinea] = trim(substr($porzione, 0 , $nLoc_SplitPos));

      // Incremento la posizione all'interno del testo del numero di caratteri inseriti
      // nell'array di linee
      $nLoc_InnerPos += $nLoc_SplitPos;

      // Incremento il contatore di linee
      $numerolinea++;
   }
   
   // Nell'array linea[] ci sono tutte le linee correttamente divise, ora procedo un
   // carattere per volta per ciascuna linea
   
   // Per ogni linea stampabile (raggiunto il numero massimo mi fermo)
   for ($numlinea = 0; $numlinea <= $nLoc_MaxLine-1; $numlinea++) {

      // Calcolo il punto di inserimento x per imagecopymerge
      // a seconda dell'allineamento scelto
      switch ($nLoc_Alignment) {
         //centrato
         case 1: 
            $nLoc_TempX = round (($nLoc_BoxWidth - (strlen ($linea[$numlinea]) * $nLoc_CellWidth))/2)+ $nLoc_PosX1;
            break;
         //a destra
         case 2: 
            $nLoc_TempX = ($nLoc_BoxWidth - (strlen ($linea[$numlinea]) * $nLoc_CellWidth))+ $nLoc_PosX1;
            break;
         //a sinistra
         default:
            $nLoc_TempX = $nLoc_PosX1;
            break;
      }      
      
      // Calcolo il punto di inserimento Y per questa linea
      $nLoc_TempY = $nLoc_PosY1 + ($nLoc_CellHeight * $numlinea);   

      // Per ogni lettera di questa linea stampo una lettera png
      for ($nLoc_Letter=0; $nLoc_Letter<=strlen ($linea[$numlinea])-1; $nLoc_Letter++) {
         
         // Calcolo il valore ascii del singolo carattere
         $nLoc_ThisASCII = ord (substr($linea[$numlinea], $nLoc_Letter, 1) );
               
         // Se non rientra nei caratteri stampabili lo sostituisco a quello di
         // default
         if (($nLoc_ThisASCII < 32) OR ($nLoc_ThisASCII > 255)) {
            $nLoc_ThisASCII = 2;
         }

         // Copio il disegno corrispondente all'ASCII ricavato nella posizione giusta
         imagecopymerge ( $rLoc_DestinationImage, 
                      $rLoc_FontImage, 
                      $nLoc_TempX, 
                      $nLoc_TempY,
                         $aLoc_FontArray[$nLoc_ThisASCII][x],
                      $aLoc_FontArray[$nLoc_ThisASCII][y],
                      $nLoc_CellWidth, 
                      $nLoc_CellHeight, 
                      100);
         
         // Vado avanti della larghezza di un carattere
         $nLoc_TempX+= $nLoc_CellWidth;
      }
   }

   // Tutto bene: completato con successo.
   return true;

}
?>

questo invece il file di test:

<?php
// Prima di tutto includo la libreria PNGFont
include ('PNGFont_1_02.php');

// Invio l'intestazione di un immagine PNG, come sempre
header("Content-type: image/png");

// Creo una nuova immagine da quella base su cui scrivero' il testo
$immagine = ImageCreateFromPNG ("Images/masc2.png");

// Carico un font PNG in memoria
$font = imagepngloadfont ("Images/Font2.png",  6, 13, 11);

// Imposto un testo lungo (non mi veniva niente di piu' intelligente ;) )
$testo = "CoD dice di essere un genio, ";
$testo .= "ma ho qualche dubbio: per fare sta funzione ";
$testo .= "ci ha messo troppo tempo!\n";
$testo .= "Voi che ne dite?";

   
// Scrivo sull'immagine il testo nel colore desiderato.
// NOTA: $al (allineamento) viene direttamente da un GET
$ris = imagepngbox ($immagine, $font, $testo, 23, 17, 310, 93 ,$al, 255, 0, 255);

// Emetto l'immagine finale
imagePNG($immagine);

// Libero la memoria
imagedestroy($immagine);

?>

Questo il file con le immagini, in formato PNG, da inserire nella cartella dove si trova la libreria qui esposta; se non lo vedi non usare quel catorcio di Internet Explorer :D

Questo un file di prova, tantp per vedere se funziona:

L'immagine dei font seve essere una PNG per supportare le trasparenze, una GIF non va bene, quella di destinazione può ovviamente essere in qualsiasi altro formato, in questo caso però devi modificare qualcosa, il progetto originale lavorava sulle png.

Da questo progetto (qui solo la parte che riguarda i font, il progetto in se è molto più comlesso) è scaturita quella cosuccia che tanti mettono nelle firme in fondo ai form, sai quella col 'baloon frame' che ti dice il tuo numero di IP, il browser che stai usando e una frase spiritosa :D

Il tutto è rilasciato sotto licenza GPL2 quindi liberamente riutilizzabile a patto di lasciare immutati i nomi degli autori, se fai delle modifiche a questo file, aggiungi pure il tuo nome accanto alle modifiche, se fai un fork, ovvero se inizi un nuovo progetto prendendo semplicemente spunto da questo file, puoi farlo a patto che tu citi il progetto da cui deriva il tuo e il nome dell'autore del progetto originale.

risposto 10 anni fa
Marco Grazia
X 0 X

Grazie Marcolino..

lunedì mattina provo a dargli un occhiata.

a presto

PS: Firefox tutta la vita!! explorer lo apro solo per testare i siti!!

risposto 10 anni fa
Andrex
modificato 10 anni fa
X 0 X

Grazie Marcolino..

lunedì mattina provo a dargli un occhiata.

a presto

PS: Firefox tutta la vita!! explorer lo apro solo per testare i siti!!

Sì, ma i tuoi siti non li usi solo tu, e non puoi obbligare gli altri a fare ciò che fai tu, non sarebbe giusto e comunque non lo farebbero, per questo si studia il metodo di far funzionare tutto insieme.

 :bye:

risposto 10 anni fa
Marco Grazia
X 0 X

forse non mi sono spiegato :-)

Explorer lo uso apposta, quando faccio un sito controllo sempre che il risultato sia lo stesso su almeno Firefox, Explorer e Opera.

Proprio per non obbligare gli utenti ad adattarsi alle mie esigenze.

risposto 10 anni fa
Andrex
X 0 X

forse non mi sono spiegato :-)

Explorer lo uso apposta, quando faccio un sito controllo sempre che il risultato sia lo stesso su almeno Firefox, Explorer e Opera.

Proprio per non obbligare gli utenti ad adattarsi alle mie esigenze.

No, no ti eri spiegato benissimo.

risposto 10 anni fa
Marco Grazia
X 0 X

Ho letto la discussione con interesse e un dubbio mi sorge spontaneo:

perché non creare i bottoni con un normale programma di grafica e poi caricare quelli della lingua corretta a runtime? Tutti i CMS ed i Frorum fanno così  :dunno:

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Giustamente Gianni, però uno poi non impara mai a usare le GD :D

A parte gli scherzi, col suo metodo teoricamente si può tradurre il CMS in tutte le lingue che si vuole, senza mai rimettere mani alla grafica.

risposto 10 anni fa
Marco Grazia
X 0 X

Giustamente Gianni, però uno poi non impara mai a usare le GD :D

A parte gli scherzi, col suo metodo teoricamente si può tradurre il CMS in tutte le lingue che si vuole, senza mai rimettere mani alla grafica.

Giustissimo! Aggiungerei però un sistema di caching delle immagini, così da non stressare troppo il server ad ogni caricamento di pagina.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

si, effettivamente non ho pensato ad un sistema di caching delle immagini...

come sistemo il problema dei caratteri passo alla cache!

grazie

risposto 10 anni fa
Andrex
X 0 X

Fatto,

funziona, mi riconosce tutti i caratteri.. ora penso alla cache  O0

Un unico dubbio: ::)

volendo modificare il font, esistono delle PNG gia pronte (per gentile concessione dei creatori  :angel: ) o devo (come mi accingevo a fare) modificarmi il set di caratteri a manella con PhotoShop?

 :bye:

risposto 10 anni fa
Andrex
X 0 X

Forse ne esistono, ma so che per quel progetto ne abbiamo dovuta fare una noi, quelle che ti ho passato.

Anzi, quando le cose funzionano, non pensi di rilasciare il tuo codice o almeno un metodo descrittivo dei tuoi passaggi, così che ne impariamo di più anche noi?

risposto 10 anni fa
Marco Grazia
X 0 X
Anzi, quando le cose funzionano, non pensi di rilasciare il tuo codice o almeno un metodo descrittivo dei tuoi passaggi, così che ne impariamo di più anche noi?

ma certo, anche se non è che sia proprio un gran progetto ^_^

comunque gia funziona (devo implementare la cache), solo che il risultato non mi piace perchè il font non sta bene col tasto e il resto della grafica del sito.  ;)

risposto 10 anni fa
Andrex
X 0 X

La cosa interessante è il metodo, da cui poi magari si potrebbe, con la volontà, tirarne fuori un buon articolo.

risposto 10 anni fa
Marco Grazia
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda