Создание изображения
Создание изображения
Изображение создается с помощью функций imagecreate и imagecreatetruecolor.
Функция imagecreate создает изображение использующее палитру.
Каждой точке такого изображения присваивается номер цвета - от 0 до 255. Каждый цвет описывается в палитре. Таким образом изображение не может содержать более 256 цветов. В палитре каждый цвет описывается с помощью трех байт - один для красной компоненты (R), один для зеленой (G) и один для синей (B).
При использовании таких изображений целесообразно, в результате работы, генерировать GIF или PNG изображения.
Функция imagecreatetruecolor создает полноцветное изображение.
Каждая точка полноцветного изображения самостоятельно определяет свой цвет. Для хранения каждой точки используется как минимум три байта - один для красной компоненты (R), один для зеленой (G) и один для синей (B). Иногда добавляется четвертый байт. Он может быть добавлен как просто для повышения производительности, так и для определения прозрачности точки.
Такое изображение занимает больше места в памяти и в результате целесообразно генерировать JPEG или PNG изображение.
Обоим функциям передается два параметра - ширина и высота изображения. Обе функции возвращают идентификатор изображения:
Пример 1.Создание полноцветного изображения размером 320x240:
Для получения результата необходимо сделать еще два действия - определить, как минимум, один цвет (в изображениях использующих палитру, первый цвет станет цветом фона) и запаковать и отправить изображение.
Выделение цветов
Для выделения цвета используется функция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);
Если вы привыкли задавать цвет так, как это делается в HTML, то можете использовать следующую функцию:
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
Если вы хотите сохранить изображение в файл, то должны передать его имя в качестве параметра функции, например:
Пример 4.Сохранение изображения в файл в формате JPEG
Примеры
Пример 5.Создания изображения, использующего палитру.
$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.Создания изображения, использующего палитру.
$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);
Назад | Оглавление | Далее
Оставить комментарий
Оставлять комментарии могут только зарегистрированные пользователи.
Если вы не являетесь зарегистрированным пользователем, то вам необходимо зарегистрироваться. Регистрация бесплатна. Если вы уже зарегистрированы на CodeNet, то вам необходимо ввести логин и пароль в верхней (Alt-U) части страницы.
Комментарии
1. soaring / 31 января 2008, 14:32:59

это я web-master'у


2. soaring / 31 января 2008, 14:32:38

а для чего в пхп циклы и управляющие конструкции? или ты никогда в модуле graph не рисовал синусоиду в паскале?


3. kron / 12 октября 2005, 14:01:20

Ваще можно не писать хеадер, он только для того чтобы сразу показывалсяч рисунок, а мне кажется это редко надо...

а синтаксис imagejpeg("newimage.jpg"); скорее выглядит вот так imagejpeg($img, "newimage.jpg");
4. kron / 12 октября 2005, 14:00:38

Ваще можно не писать хеадер, он только для того чтобы сразу показывалсяч рисунок, а мне кажется это редко надо...

а синтаксис imagejpeg("newimage.jpg"); скорее выглядит вот так imagejpeg($img, "newimage.jpg");
5. Web-master / 01 февраля 2005, 13:47:48

В. Пойс, нафиг библиотеки ? если можно нарисовать и без них..т.е с помощью стардартной GD ?


6. В. Пойс / 01 февраля 2005, 03:37:45

Рисование графиков в PHP смотри http://www.aditus.nu/jpgraph/

Есть еще аналогичные бесплатные библиотеки.
7. Web-master / 31 января 2005, 18:24:11

Начальные уроки хорошо :) а вот когда будет типа рисование графиков ? :8)


