Робота з графікою в PHP - PHP - Програмування для Web - Статті
Веб-майстрам часто буває необхідно динамічно створювати та/або змінювати малюнки на своїх сторінках. Це потрібно в тих випадках, коли зображення несуть не тільки декоративну функцію, а містять корисну інформацію. І якщо веб-майстер знайомий з основами PHP, вирішення цього завдання стає більш ніж тривіальним. Для цього достатньо підключити модуль розширення GD.Андрій Гончаренко
Створення графічного лічильника відвідувань
Важлива особливість роботи з модулем GD полягає в тому, що скрипт, що формує новий малюнок, не повинен виводити будь-що крім самого малюнка (тобто в ньому не повинно бути викликів echo, printf і подібних до них функцій). Згодом зображення, сформоване PHP-скриптом, виводиться браузером методом вказівки URL цього скрипта як джерело даних, наприклад .
Створення нового малюнка в PHP починається або зі створення нової чистої "сторінки" (canvas) для малювання, або з завантаження та модифікації вже існуючого зображення. Але перш ніж розпочати процес виведення графічної інформації, необхідно вибрати його формат (тип MIME) у вигляді виклику функції header(str). Наприклад, для формату PNG необхідно використовувати наступний код:
Далі для створення області для малювання необхідно викликати функцію int imagecreate (int x_size, int y_size), якій передати як параметри x_size і y_size, відповідно, ширину і висоту (у пікселах) картинки, що формується; при цьому функція поверне ідентифікатор створеної області для малювання. Якщо ми хочемо взяти за основу вже наявну картинку, то, залежно від її формату, потрібно викликати функцію imagepng, або imagejpeg, або imagegif, передавши як параметр ім'я файлу-картинки. Для виведення тексту існує функція intimagestring(int im, int font, int x, int y, string s, int col), який потрібно передати: ідентифікатор області малювання, розмір шрифту (1-5), координату X початку тексту, координату Y початку тексту, сам текст і колір тексту відповідно. Для визначення кольору використовується конструкція виду
$white=ImageColorAllocate($im, 255, 255, 255)
Останні три числові параметри - RGB-складові необхідні кольори. Але оскільки кожного разу вказувати їх дещо нераціонально, слід створити include-файл із визначеннями основних кольорів colors.inc:
Після того як ми намалювали засобами GD нашу картинку, її потрібно вивести в браузер. Для цього в залежності від формату малюнка необхідно викликати одну з функцій: imagepng(int im [, string filename]) або imagejpeg (int im [, string filename [, int quality]]), - передавши їй як параметр ідентифікатор картинки. Якщо крім ідентифікатора області малювання вказати ім'я файлу, зображення буде збережено на диску під цим ім'ям). Після того як ми завершили роботу з малюнком, необхідно звільнити пам'ять, яку він займає. Для цього служить функція imagedestroy (int im). Розглянемо роботу з цими функціями з прикладу.
Для початку створимо шаблони заголовка та "підвалу" HTML-документа, які будемо використовувати для того, щоб не засмічувати PHP-код конструкціями HTML: