Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
икатор шрифта — это будет 
цифра, большая 5, потому что пять первых номеров зарезервированы как встроенные.
 
Формат файла — бинарный, а потому зависит от архитектуры машины. Это значит, 
что файл со шрифтами должен быть сгенерирован по крайней мере на машине с про- 
цессором такой же архитектуры, как и у той, на котором вы собираетесь 
использовать 
PHP. Вот формат этого файла (табл. 23.1). Левая колонка задает смещение начала 
данных внутри файла, а группами цифр, записанных через дефис, определяется, до 
какого адреса продолжаются данные. 
Таблица 23.1. Формат файла со шрифтом 
Смещение Тип Описание 
Byte 0-3 long Число символов в шрифте (nchars) 
byte 4-7 long Индекс первого символа шрифта (обычно 32 — пробел) 
Таблица 23.1 (окончание) 
Смещение Тип Описание 
byte 8-11 long Ширина (в пикселах) каждого знака (width) 
byte 12-15 long Высота (в пикселах) каждого знака (height) 
byte 16-... array Массив с информацией о начертании каждого символа, по 
одному байту на пиксел. На один символ, таким образом, 
приходится width*height байтов, а на все — 
width*height*nchars байтов. 0 означает отсутствие точки в 
данной позиции, все остальное — ее присутствие 

Глава 23. Работа с изображениями 327 
Параметры шрифта 
После того как шрифт загружен, его можно использовать (встроенные шрифты, ко- 
нечно же, загружать не требуется). 
int imageFontHeight(int $font) 
Возвращает высоту в пикселах каждого символа в заданном шрифте. 
int imageFontWidth(int $font) 
Возвращает ширину в пикселах каждого символа в заданном шрифте. 
Вывод строки 
int imageString(int $im, int $font, int $x, int $y, string $s, int $col) 
Выводит строку $s в изображение $im, используя шрифт $font и цвет $col. Коор- 
динаты ($x,$y) будут координатами левого верхнего угла прямоугольника, в 
который 
вписана строка. 
int imageStringUp(int $im, int $font, int $x, int $y, string $s, int $c) 
Эта функция также выводит строку текста, но не в горизонтальном, а в 
вертикальном 
направлении. Верхний левый угол, по-прежнему, задается координатами ($x,$y). 
Работа со шрифтами TrueType 
Библиотека GD поддерживает также работу со шрифтами PostScript и TrueType. Мы с 

вами рассмотрим только последние, т. к., во-первых, их существует великое 
множе- 
ство (благодаря платформе Windows), а во-вторых, с ними проще всего работать в 
PHP. 
Для того чтобы заработали приведенные ниже функции, PHP должен быть от- 
компилирован и установлен вместе с библиотекой FreeType, доступной по ад- 
ресу http://www.freetype.org. В Windows-версии PHP она установлена по 
умолчанию. 
Всего существует две функции для работы со шрифтами TrueType. Одна из них вы- 
водит строку в изображение, а вторая — определяет, какое положение эта строка 
бы 
заняла при выводе. 
Вывод строки 
list imageTTFText(int $im, int $size, int $angle, int $x, int $y, 
int $col, string $fontfile, string $text) 

Часть IV. Стандартные функции PHP 328 
Эта функция помещает строку $text в изображение $im цветом $col. Как обычно, 
$col должен представлять собой допустимый идентификатор цвета. Параметр 
$angle задает угол наклона в градусах выводимой строки, отсчитываемый от гори- 
зонтали против часовой стрелки. Координаты ($x,$y) указывают положение так на- 
зываемой базовой точки строки (обычно это ее левый нижний угол). Параметр 
$size задает размер шрифта, который будет использоваться при выводе строки. На- 

конец, $fontfile должен содержать имя TTF-файла, в котором, собственно, и хра- 
нится шрифт. 
Хотя в официальной документации об этом ничего не сказано, я рискну взять 
на себя ответственность и заявить, что параметр $fontfile должен всегда 
задавать абсолютный путь (от корня файловой системы) к требуемому файлу 
шрифтов. Что самое интересное, в PHP версии 3 функции все же работают с 
относительными именами. Но в любом случае лучше подстелить соломку — 
абсолютные пути еще никому не вредили, не правда ли?.. 
Функция возвращает список из 8 элементов. Первая их пара задает координаты (x,
y) 
верхнего левого угла прямоугольника, описанного вокруг строки текста в 
изображе- 
нии, вторая пара — координаты верхнего правого угла, 
и т. д. Т
 
<<-[Весь Текст]
Страница: из 287
 <<-