imageloadfont

(PHP 4, PHP 5, PHP 7, PHP 8)

imageloadfontYeni bir bit eşlemli yazı tipi yükler

Açıklama

imageloadfont(string $dosya): GdFont|false

imageloadfont() işlevi bir kullanıcı tanımlı biteşlemli yazı tipini yükler ve onun için bir GdFont nesnesi döndürür.

Bağımsız Değişkenler

dosya

İkil ve mimariye bağımlı biçemde yazı tipi dosyası. Yani, yazı tipi dosyalarını PHP'nin çalıştığı makine ile aynı işlemciye (CPU) sahip bir makinede üretmiş olmalısınız.

Yazı tipi dosyası biçemleri
bayt konumu C veri türü açıklama
0-3 int Yazı tipindeki karakterlerin sayısı.
4-7 int Yazı tipindeki ilk karakterin değeri (çoğunlukla boşluk karakterinin kodu olan 32'dir).
8-11 int Her karakterin piksel olarak genişliği
12-15 int Her karakterin piksel olarak yüksekliği
16- char Karakter verisini içeren dizi; bir karakterin her pikseli için bir bayt olmak üzere toplam (karakter_sayısı * genişlik * yükseklik) bayt içerir.

Dönen Değerler

GdFont nesnesi ile döner. Bir hata oluşursa false döner.

Sürüm Bilgisi

Sürüm: Açıklama
8.1.0 Artık GdFont örneği dönüyor, evvelce tamsayı bir değer dönerdi.

Örnekler

Örnek 1 - imageloadfont() örneği

<?php
// Yeni bir görüntü taslağı oluşturalım
$im = imagecreatetruecolor(50, 20);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// Artalan rengi beyaz olsun
imagefilledrectangle($im, 0, 0, 49, 19, $white);

// gd yazı tipini yükleyip 'Hello' yazalım
$font = imageloadfont('./04b.gdf');
imagestring($im, $font, 0, 0, 'Hello', $black);

// Görüntüyü tarayıcıya gönderelim
header('Content-type: image/png');

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

Ayrıca Bakınız

add a note

User Contributed Notes 3 notes

up
5
siker at norwinter dot com
19 years ago
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.
up
1
alex at bestgames dot ro
19 years ago
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(150, 60);
imagecolorallocate($image, rand(0, 100), rand(100, 150), rand(150, 250));
$fonts = scandir($fonts_dir);

$max = count($fonts) - 2;

$width = 10;
for (
$i = 0; $i <= strlen($code); $i++)
{
$textcolor = imagecolorallocate($image, 255, 255, 255);
$rand = rand(2, $max);
$font = imageloadfont($fonts_dir."/".$fonts[$rand]);

$fh = imagefontheight($font);
$fw = imagefontwidth($font);

imagechar($image, $font, $width, rand(10, 50 - $fh), $code[$i], $textcolor);
$width = $width + $fw;

}

imagejpeg($image, $location."/".md5($code).".jpg", 100);
imagedestroy($image);

return
$code;

}

?>
up
0
matthew at exanimo dot com
19 years ago
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.
To Top