PHP MonoBMP class

Текущая версия

Текущая и единственная, на данный момент версия - 0.1.0 от 3 сентября 2005. Её автор - я, Евгений Степанищев. Мои координаты есть на сайте.

Что это?

Библиотека для работы с монохромными изображениями в формате BMP. Является расширением класса Image_XBM и работает на его основе.

Возможности

Библиотека поддерживает:
  • Чтение и запись формата BMP (только монохромный)
  • Графические примитивы - точка, линия, полигон, эллипс, прямоугольник.
  • Заливка цветом
  • Рисование графических примитивов заданным стилем (setStyle)
  • Копирование части изображения
  • Поддержка Figlet-шрифтов при помощи библиотеки Text_Figlet.

Использование

В библиотеке один класс Image_XBM, четыре константы и несколько методов (в большинстве своём совпадают с функциями GD):
  • IMAGE_XBM_BLACK
    константа для чёрного цвета
  • IMAGE_XBM_WHITE
    константа для чёрного цвета
  • IMAGE_XBM_TRANS
    константа для прозрачности (например для того, чтобы при печати шрифтом, шрифт накладывался поверх изображения не затирая его фоном)
  • IMG_COLOR_STYLED
    специальный цвет, для рисования заданным стилем (setStyle)
  • create($x_size, $y_size)
    создаёт пустое (белое) изображение заданного размера
  • getWidth()
    возвращает размер изображения по горизонтали
  • getHeight()
    возвращает размер изображения по вертикали
  • drawLine($x1, $y1, $x2, $y2, $color)
    чертит линию из x1,y1 в x2,y2 заданным цветом
  • drawPixel($x, $y, $color)
    закрашивает пиксел заданным цветом
  • getColorAt($x, $y)
    возвращает цвет пикселя в заданных координатах
  • output([$filename])
    выводит изображение в браузер или файл
  • drawRectangle($x1, $y1, $x2, $y2, $color)
    рисует прямоугольник. x1,y1 - координаты верхнего левого угла, x2,y2 - правого нижнего, color - цвет
  • drawFilledRectangle($x1, $y1, $x2, $y2, $color)
    рисует закрашенный прямоугольник
  • 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 получится круг
  • drawFilledEllipse($cx, $cy, $w, $h, $color)
    рисует закрашенный эллипс
  • 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.

Пример использования

Картинка в формате BMP
<?
    
require_once 'Image/MonoBMP.php';

    
$a = new Image_MonoBMP();
    
$a->createFromFile('MonoBMP_sample.bmp');

    
$a->drawFigletText('MonoBMP test', 'xbriteb.flf', '1:1', IMAGE_XBM_BLACK, IMAGE_XBM_WHITE, 10, 45);

    
$a->drawRectangle(0, 0, 99, 99, IMAGE_XBM_BLACK);

    
header("Content-type: image/bitmap");
    
$a->output();

?>

Скачать

Скачать библиотеку в формате PEAR: Image_MonoBMP-0.1.0.tgz ( байт)
Посмотреть исходный код Image_MonoBMP: MonoBMP.phps
Модуль Figlet: Figlet package
С уважением,
Евгений Степанищев
http://bolknote.ru/