Создание изображения
Автор: mike (www.codenet.ru)
Изображение создается с помощью функций imagecreate и
imagecreatetruecolor.
Функция imagecreate создает изображение использующее
палитру.
Каждой точке такого изображения присваивается номер цвета - от
0 до 255. Каждый цвет описывается в палитре. Таким образом
изображение не может содержать более 256 цветов. В палитре каждый
цвет описывается с помощью трех байт - один для красной компоненты
(R), один для зеленой (G) и один для синей (B).
При использовании таких изображений целесообразно, в результате
работы, генерировать GIF или PNG изображения.
Функция imagecreatetruecolor создает полноцветное
изображение.
Каждая точка полноцветного изображения самостоятельно
определяет свой цвет. Для хранения каждой точки используется как
минимум три байта - один для красной компоненты (R), один для
зеленой (G) и один для синей (B). Иногда добавляется четвертый
байт. Он может быть добавлен как просто для повышения
производительности, так и для определения прозрачности точки.
Такое изображение занимает больше места в памяти и в результате
целесообразно генерировать JPEG или PNG изображение.
Обоим функциям передается два параметра -
ширина и высота изображения. Обе функции возвращают идентификатор
изображения:
Пример 1. Создание полноцветного изображения размером
320x240:
$img=imagecreatetruecolor(320,240);
Для получения результата необходимо сделать еще два действия -
определить, как минимум, один цвет (в изображениях использующих
палитру, первый цвет станет цветом фона) и запаковать и отправить
изображение.
Выделение цветов
Для выделения цвета используется функция imagecolorallocate
. В качестве параметров ей передается
идентификатор изображения и три компоненты цвета (R,G и B). Значение
каждой компоненты может изменятся от 0 до 255.
Пример 2. Выделение цветов
// Черный цвет
$color1=imageolorallocate($img,0,0,0);
// Белый цвет
$color2=imagecolorallocate($img,255,255,255);
// Зеленый цвет
$color3=imagecolorallocate($img,0,255,0);
Если вы привыкли задавать цвет так, как это делается в HTML, то
можете использовать следующую функцию:
function htmlcolor($img,$color) {
sscanf($color, "%2x%2x%2x", $red, $green, $blue);
return ImageColorAllocate($img,$red,$green,$blue);
return($c);
}
$red=htmlcolor($img,"FF0000");
Сохранения изображения
После того, как изображение сформировано, необходимо передать его
в понятном для браузера формате - GIF, JPEG или PNG. Для этого
используются функции imagegif
, imagejpeg
и imagepng
Пример 3. Передача изображения в стандартный вывод в
формате PNG
imagepng();
Если вы хотите сохранить изображение в файл, то должны передать
его имя в качестве параметра функции, например:
Пример 4. Сохранение изображения в файл в формате JPEG
imagejpeg("newimage.jpg");
Примеры
Пример 5. Создания изображения, использующего палитру.
<?php
header("Content-type: image/png");
$img = imagecreate(320, 240);
$background_color = imagecolorallocate($img, 155, 255, 255);
$text_color = imagecolorallocate($img, 233, 14, 91);
imagestring($img, 2, 5, 5, "This is example", $text_color);
imagepng($img);
imagedestroy($img);
?>
Hint: Помните! Cкрипт генерирующий изображение не может
выводить никаких текстовых сообщений. Не оставляйте пустых строк
перед «<?» и после«?>»
Пример 6. Создания изображения, использующего палитру.
<?php
header ("Content-type: image/png");
$img = imagecreatetruecolor(320, 240);
$text_color = imagecolorallocate($img, 233, 14, 91);
imagestring($img, 2, 5, 5, "This is example", $text_color);
imagepng($img);
imagedestroy($img);
?>