imageloadfont

(PHP 4, PHP 5)

imageloadfont — Load a new font

Описание

int imageloadfont ( string $file )

imageloadfont() loads a user-defined bitmap and returns its identifier.

Список параметров

file

The font file format is currently binary and architecture dependent. This means you should generate the font files on the same type of CPU as the machine you are running PHP on.

Font file format
byte position C data type description
byte 0-3 int number of characters in the font
byte 4-7 int value of first character in the font (often 32 for space)
byte 8-11 int pixel width of each character
byte 12-15 int pixel height of each character
byte 16- char array with character data, one byte per pixel in each character, for a total of (nchars*width*height) bytes.

Возвращаемые значения

The font identifier which is always bigger than 5 to avoid conflicts with built-in fonts or FALSE on errors.

Примеры

Пример #1 Using imageloadfont

<?php
header
("Content-type: image/png");
$im imagecreatetruecolor(5020);
$black imagecolorallocate($im000);
$white imagecolorallocate($im255255255);
imagefilledrectangle($im004919$white);
$font imageloadfont("04b.gdf");
imagestring($im$font00"Hello"$black);
imagepng($im);
?>

Смотрите также

Коментарии

Confirmation code generation for preventing automated registrations on a website.

Function arguments are:
$code - the code that you shall random generate
$location - relative location of the image that shall be generated
$fonts_dir - relative location for the GDF fonts directory

This function will create an image with the code given by you and will save it in the directory specified with the name formed by MD5 hash of the code.

You may insert as many font types in the fonts directory as you wish, with random names.

<?php
function generate_image($code$location$fonts_dir)
{
     
$image  imagecreate(15060);           
     
imagecolorallocate($imagerand(0100), rand(100150), rand(150250));
     
$fonts scandir($fonts_dir);
     
     
$max count($fonts) - 2;
     
     
$width 10;
     for (
$i 0$i <= strlen($code); $i++)
     {     
         
$textcolor imagecolorallocate($image255255255);
         
$rand rand(2$max);
         
$font imageloadfont($fonts_dir."/".$fonts[$rand]);
         
         
$fh imagefontheight($font);
         
$fw imagefontwidth($font);

         
imagechar($image$font$widthrand(1050 $fh), $code[$i], $textcolor);     
         
$width $width $fw;
       
     }
             
     
imagejpeg($image$location."/".md5($code).".jpg"100);
     
imagedestroy($image);       
   
     return 
$code;
     
}

?>
2005-07-02 08:01:56
http://php5.kiev.ua/manual/ru/function.imageloadfont.html
Remember - GD fonts aren't antialiased.  If you're planning on using a pre-existing (TrueType) font, you may want to consider using imagettftext() instead of phillip's function.
2005-08-15 13:28:47
http://php5.kiev.ua/manual/ru/function.imageloadfont.html
Working under the assumption that the only 'architecture dependant' part of the font files is endianness, I wrote a quick and dirty Python script to convert between the two. It has only been tested on a single font on a single machine so don't bet your life on it working. All it does is swap the byte order of the first four ints.

#!/usr/bin/env python

f = open("myfont.gdf", "rb");
d = open("myconvertedfont.gdf", "wb");

for i in xrange(4):
        b = [f.read(1) for j in xrange(4)];
        b.reverse();
        d.write(''.join(b));

d.write(f.read());

I successfully used this script to convert anonymous.gdf, from one of the font links below, into something useable on Mac OS X.
2005-08-28 21:37:30
http://php5.kiev.ua/manual/ru/function.imageloadfont.html

    Поддержать сайт на родительском проекте КГБ