Font 'o' matic

Description

Version BETA octobre 09.
Lecteur de police de caractère vectorielle en ligne. Nécessite PHP5, la bibliothèque GD2 avec le support PNG et true type font d'installée.

Déposer vos polices dans l'application et elle se charge du reste. Testé uniquement sous firefox en ce qui concerne l'affichage (1024*768 minimum)
- Installation automatique.
- URL Rewriting même chez free.fr, grâce au module apache MultiViews (cf conclusion).
- Création d'appercus.
- Création à la volée d'appercus avec un texte utilisateur.
- Création d'appercus de chaque caractère ascii contenus dans la police.
- Utilisation du CSS pour la mise en forme.

Démonstration, notez l'url rewriting : http://fontomatic.free.fr/
Si vous utilisez une ancienne version de Font'O'Matic, effacez tous les fichiers présents à la racine de votre installation précédente. Vous pouvez écraser le reste.

Je suis à l'écoute de tous commentaires.

Site web :
http://inwebo.free.fr/fontomatic.php5

Source / Exemple :


//Création des caractères ascii exemple

	function Create_preview_char_png()
	{
                        // Parcours de tous les glyphes ASCII
			for($i=33;$i<=126;$i++)
			{
				// Formatage du nom
				$nbre_zero = 4 - strlen($i);
				($nbre_zero %2 == 0) ?	$ascii_propre = substr_replace($i, "00", 0, 0) :$ascii_propre = substr_replace($i, "0", 0, 0);
				$char = chr($i);
				
				// Calcul de la largeur hauteur d'un charactere
				$arf = imagettfbbox(60,0,$this->chemin_font,chr($i));
				$largeur = (abs($arf[2]) + abs($arf[0]));
				$hauteur = (abs($arf[5]) + abs($arf[3]));

				// Test $largeur pour creation de l'image principale $image_temp_main
				($largeur<60)?$image_temp_main = imagecreate(69,168):$image_temp_main = imagecreate($largeur+10,168);

				// Traitement image principale $image_temp_main
				$bgc = imagecolorallocate($image_temp_main, 255, 255, 255);
				$tc  = imagecolorallocate($image_temp_main, 0, 0, 0);
				// Récupere l'en tête $image_temp_header et on le colle dans l'image principale $image_temp_main
				$image_temp_header = imagecreatefrompng($this->root_previews.$ascii_propre.'.png');
				$test = imagecopy($image_temp_main,$image_temp_header,0,0,0,0,42,25);

				// Crée l'image $image_temp_char contenant le chararctère en laissant une marge autour			
				$image_temp_char = imagecreate($largeur+2,$hauteur+2);
				$bgc2 = imagecolorallocate($image_temp_char, 255, 255, 255);
				$tc2  = imagecolorallocate($image_temp_char, 0, 0, 0);
				// Ecriture du charactere dans $image_temp_char
				$temp = @imagettftext($image_temp_char, 60, 0, abs($arf[0]), abs($arf[5]), $tc2,$this->chemin_font,chr($i));
				// Calcul des coordonnées pour la fusion de $image_temp_char dans $image_temp_main
				// Centre les glyphes
				($largeur<60) ? $dest_x = (69-$largeur)/2 : $dest_x = 0;
				
				// Coordonnée constante Origine Haut gauche de l'image source
				$dest_y =60;
				// Fusionne $image_temp_main et $image_temp_char
				$test2=imagecopy($image_temp_main,$image_temp_char,$dest_x,$dest_y,0,0,$largeur+7,$hauteur+10);
				
				imagepng($image_temp_main,$this->chemin . $ascii_propre . '.png');
				
				imagedestroy($image_temp_main);
				imagedestroy($image_temp_header);
				imagedestroy($image_temp_char);
				unset($arf, $temp, $bgc, $tc, $bgc2, $tc2, $image_temp_main, $image_temp_header, $image_temp_char, $ascii_propre, $test, $test2, $nbre_zero);

			}
	}

Conclusion :


Je vous conseils vivement d'activer le module apache Multiviews (http://matrix.samizdat.net/serveurs/www/apache_1.3/content-negotiation.html). Apache utilise un algorithme pour déterminer la variante la plus "appropriée" en fonction de la requête cliente (si elle existe). Vulgairement, au lieu d'avoir une adresse du type http://localhost/test/index.php?var=une_variable&var2=une_autre_variable, nous pouvons avoir cette adresse sous la forme http://localhost/test/index/une_variable/une_autre_variable/. De l'URL rewriting en quelque sorte. Activé par défaut chez free.fr et beaucoup d'autres. A activer avec easyphp 3.0.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.