Этот сайт — моя персональная записная книжка. Интересны мне, по большей части, программирование, история и события из моей жизни.
PHP XBM class
Библиотека на PHP для работы с изображениями в формате XBM
PHP XBM class
Текущая версия
Текущая, на данный момент версия — 0.9.0RC1 от 28 сентября 2005. Её
автор — я, Евгений Степанищев. Мои координаты есть на сайте.
Предыстория
XBM — пожалуй, единственный формат, который используется веб-мастерами крайне редко. Несмотря на
то, что изображения в этом формате поддерживаются всеми ведущими браузерами, известно об этом
факте очень малому количеству людей. Конечно, дикие времена, когда GD в составе PHP на хостингах
был редкостью уходят в прошлое, тем не менее, такие хостеры встречаются, а задача вывода графики
остаётся.
Сам я взялся за этот класс как раз по этой причине — у хостера не было (и нет до сих пор) библиотеки
GD, а некоторую информацию нужно было выводить в виде картинки. У формата XBM есть достоинство -
он относительно прост, но ест и существенный недостаток — в вашем распоряжении всего два цвета, впрочем,
для некоторых задач этого вполне достаточно. Пример работы (код можно посмотреть ниже) класса Image_XBM:
Важное дополнение: оказывается, Internet Explorer 6.0SP1 и старше перестали поддерживать
формат XBM из-за того, что у IE были проблемы с парсингом этого формата. Вместо того, чтобы исправить
проблему, Microsoft просто удалила поддержку этого формата из своего браузера.
Исходная иллюстрация — двухцветный XBM размером 300 × 225. Большинство современных браузеров XBM уже не показывает, поэтому при импорте его копия без изменения растра преобразована в PNG. Оригинал XBM сохранён в архиве.
drawPolygon($points, $num_points, $color)
рисует фигуру из произвольного количества точке. $points — массив из пар координат точке, $num_points — размер
массива, $color — цвет
destroy()
уничтожает изображение и переинициализирует все переменные
setStyle($style)
задаёт стиль рисования для цвета IMG_COLOR_STYLED. $style — массив цветов (подробнее — в документации по GD)
fill($x, $y, $color)
«баночка с краской» — заливает область цветом $color, ограниченную со всех сторон цветом, противоположным
$color
copy(&$src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h)
копирует часть изображения $src_im размерами $src_w,$src_h из координат $src_x, $src_y в $dst_x, $dst_y
createFromFile($filename)
чтение XBM-изображения из файла
drawEllipse($cx, $cy, $w, $h, $color)
рисует эллипс цветом $color с координатами центра $cx, $cy, шириной $w и высотой $h. Легко догадаться, что при $w=$h
получится круг
drawFigletText($text, $font, $size, $fgcolor, $bgcolor, $x, $y)
выводит текст figlet-шрифтом. $text — текст, который будет выведен; $font — пусть и имя figlet-шрифта,
$size — коэффициент умножения (целое число или строка 'X:Y' — отдельные целые коэффициенты умножения
по оси X и Y); $fgcolor — цвет текста; $bgcolor — цвет фона; $x и $y — начальные координаты для вывода.
Для работы с Figlet-шрифтами требуется наличия модуля Text::Figlet из PEAR.