2010-04-21 3 views
1

Ok, maintenant c'est officiellement 10 heures que j'essaie de faire ce travail, mais à chaque minute je suis de plus en plus loin du but final ...
La chose est, j'ai besoin de créer une fonction, une classe ou quoi que ce soit par la police TTF ou truetype sélectionnée créer, redimensionner correctement, et remplir l'image avec un texte donné par l'URL. L'image ne doit pas être plus longue que ce texte. J'ai renoncé à tous mes codes, et la meilleure chose que j'ai à ce jour est pris du filet ...imagettfbbox & imagettftext - redimensionner, positionner, tourner

<?php 
    if(!isset($_GET['size'])) $_GET['size'] = 20; 
    if(!isset($_GET['text'])) $_GET['text'] = "Moj tekst"; 
    $get_font = (isset($_GET['font'])) ? $_GET['font'] : 'arial'; 

    $size = imagettfbbox($_GET['size'], 0, "font/".$get_font.".ttf", $_GET['text']); 
    $xsize = abs($size[0]) + abs($size[2]); 
    $ysize = abs($size[5]) + abs($size[1]); 

    $image = imagecreate($xsize, $ysize); 

    imageSaveAlpha($image, true); 
    ImageAlphaBlending($image, false); 

    $transparentColor = imagecolorallocatealpha($image, 200, 200, 200, 127); 
    Imagefill($image, 0, 0, $transparentColor); 

    $blue = imagecolorallocate($image, 0, 0, 255); 
    $white = ImageColorAllocate($image, 255,255,255); 
    $black = ImageColorAllocate($image, 0,0,0); //-($_GET['size']/20) 
    imagettftext($image, $_GET['size'], 0, abs($size[0]), abs($size[5]), $black, "font/".$get_font.".ttf", $_GET['text']); 

    header("content-type: image/png"); 
    imagepng($image); 
    imagedestroy($image); 
?> 

Ce code est correct, bien que le bord de la première ou la dernière dernière est parfois partiellement caché ou simplement qu'il ne rentre pas dans l'image créée (en fonction de la taille de la police), ce qui n'est pas le problème avec une taille de police plus petite. Et la fonction i vraiment besoin est en changeant la rotation de l'image pour changer les proportions entières d'images de sorte que le texte inscrit dans

Exemple:. http://img199.imageshack.us/img199/9368/32739521.jpg

De plus, s'il y a que le fait est terminée fonction ou classe, il serait great ..: '(:)

Répondre

0

S'il vous manque toujours une lettre de la fin du début, pourquoi ne pas simplement ajouter la largeur d'une lettre à votre taille finale?

Dans mon expérience, imagettfbbox ne le fait pas un très bon travail de décider ce qui fonctionne et ne correspond pas dans un cadre de sélection - vous devez le truquer un peu vous-même :)

Hope this helps.

Luke Peterson

Questions connexes