Работа с изображениями в php
Для работы с изображениями в PHP предназначена библиотека GD.
Создание изображения
Изображение создается с помощью функций ImageСreate() и ImageСreateTrueColor().
Общий вид:
ImageCreate (х, у)
Функция ImageСreate() создает пустую палитровую картинку размером точек и возвращает её идентификатор. После того, как картинка создана, вся работа с ней осуществляется через этот идентификатор.
Каждой точке такого изображения присваивается номер цвета - от 0 до 255. Каждый цвет описывается в палитре. Таким образом изображение не может содержать более 256 цветов. В палитре каждый цвет описывается с помощью трех байт - один для красной компоненты (R), один для зеленой (G) и один для синей (B).
Изображения, созданные при помощи функции ImageСreate() обычно сохраняются в формате GIF или PNG.
Функция ImageСreateTrueColor() создает полноцветное изображение.
Общий вид:
ImageCreateTrueColor(x, y)
Каждая точка полноцветного изображения самостоятельно определяет свой цвет. Для хранения каждой точки используется как минимум три байта - один для красной компоненты (R), один для зеленой (G) и один для синей (B). Иногда добавляется четвертый байт. Он может быть добавлен как просто для повышения производительности, так и для определения прозрачности точки.
Такое изображение занимает больше места в памяти. Обычно ImageCreateTrueColor() применяют для создания JPEG-изображений и PNG-изображений.
Пример 1. Создание полноцветного изображения размером 320x240:
$img= ImageCreateTrueColor(320,240);
Для получения результата необходимо сделать еще два действия - определить, как минимум, один цвет (в изображениях использующих палитру, первый цвет станет цветом фона) и запаковать и отправить изображение.
Определение цветов
Для выделения цвета используется функция ImageColorAllocate(). В качестве параметров ей передается идентификатор изображения и три компоненты цвета (R,G и B). Значение каждой компоненты может изменятся от 0 до 255.
Пример 2. Выделение цветов
// Черный цвет
$color1= ImageColorAllocate ($img,0,0,0);
// Белый цвет
$color2= ImageColorAllocate ($img,255,255,255);
// Зеленый цвет
$color3= ImageColorAllocate ($img,0,255,0);
Сохранение изображения
После того, как изображение сформировано, необходимо передать его в понятном для браузера формате - GIF, JPEG или PNG. Для этого используются функции imagegif(), imagejpeg() и imagepng().
Не все браузеры определяют, что выводимая информация – изображение. Поэтому перед выводом изображения рекомендуется добавлять одну из команд (в зависимости от типа изображения):
header ("Content-type: image/png");
или
header ("Content-type: image/jpeg");
или
header ("Content-type: image/gif");
Параметр Content-Type ("тип содержимого") - содержит обозначение типа содержимого http-ответа.
Пример 3. Передача изображения в стандартный вывод в формате PNG
<?
header ("Content-type: image/png");
$img= ImageCreateTrueColor(320,240);
imagepng($img);
?>
Если вы хотите сохранить изображение в файл, то должны передать его имя в качестве параметра функции, например:
Пример 4. Сохранение изображения в файл в формате JPEG
<?
$img= ImageCreateTrueColor(320,240);
imagejpeg($img, "newimage.jpg");
?>