О...
Итак, библиотека JpGraph была разработана Шведской компанией Aditus Consulting, которую возглавляет Йохан Перссон. Эта библиотека очень мощна, и её объем достигает 3,5 мегабайт. Имеется хорошая документация по классам и методам этой библиотеки на английском языке. Последнюю версию можно скачать на сайте разработчика.
В этой статье я собираюсь рассказать о некоторых возможностях библиотеки и привести примеры её работы.
Возможности
Линии
Линии могут быть легко адаптированы практически под любые потребности. Можно изменить цвет, прозрачность уровней, толщину линии, тип линии (сплошная, пунктирная и т.д.), фон, масштаб, оси позиционирования и форматирование.


Линии также можно заполнить цветом, полупрозрачным или градиентом (как горизонтальным, так и вертикальным). Заполнению можно задать одну или несколько вертикальных полосы.




Соединения линий могут быть подчеркнуты использованием маркеров (имеются встроенные, а так же 3D маркеры), или изображениями.


Также, в местах соединения линий, можно использовать какой-либо текст.

Блоки
Блоки, также как и кривые, имеют множество настроек, от заполнения цветом, до придания 3D-эффекта с прозрачным фоном.


Остальные возможности вы можете посмотреть на странице разработчика.
Пример: Антиспам
Первое, что мне попалось на глаза, был класс для создания изображений для защиты от ботов на сайте.

На первый взгляд, казалось бы, такое реализовать нелегко, но заглянув в файл класса – сразу все становится понятно. Каждому символу присвоена строка, закодирования алгоритмом base64. Но от этого класс не становится бесполезным в плане расширения.
Еще один момент, в библиотеке находится два класса для генерирования таких изображений. Первый, jpgraph_antispam.php, генерирует строку с цифрами, а второй, jpgraph_antispam-digits.php, генерирует строку, состоящую исключительно из цифр.
Пример реализации
Copy Source | Copy HTML
- <?php
- // Подключение класса
- require_once "../jpgraph_antispam.php";
-
- // Создание объекта
- $spam = new AntiSpam('');
-
- // Создание строки состоящей из 5 произвольных символов
- $chars = $spam->Rand(5);
-
- // Вывод изображения
- if( $spam->Stroke() === false ) {
- die('Illegal or no data to plot');
- }
-
- ?>
И наконец
Если мне дадут инвайт, то следующая моя статья будет о самых распространенных классах и методах библиотеки JpGraph. Также выход статьи будет зависеть от ваших комментариев ;-)