2010-04-21 367 views
1

好吧,现在我正在尝试做这项工作10个小时,但每分钟我都离最终目标越来越远......
这个东西是,我需要创建一个函数,类或任何由所选的TTF或truetype字体创建,正确调整大小,并填充图像与URL给出的文本。图片不应超过该文字。 我已经放弃了我所有的代码,到目前为止,我已经得到了最好的事情是从网上取...imagettfbbox&imagettftext - 调整大小,位置,旋转

<?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); 
?> 

此代码是确定的,虽然最后还是第一后的边缘有时会部分隐藏,或者只是它不适合创建的图像(取决于字体大小),这不是小字体大小的问题。而功能我真正需要的是通过改变图像的旋转来改变整个图像的比例,使文本在适合

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

此外,如果有要完成的功能或类,这样做,这将是伟大的..:'(:)

回答

0

如果你总是缺少开始结束的一个字母,为什么不只是一个字母的宽度添加到您的最终大小?

以我的经验,imagettfbbox没有做决定是什么,并没有一个边框内适合的一个很好的工作 - 你需要一点点自己:)

希望这有助于掰过来。

卢克·彼得森