Справочник функций

Ваш аккаунт

Логин:
Пароль:
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:
Убрать блок ВКонтакте навсегда

Последние темы форума

Показать новые сообщения »

Почтовая рассылка



Подписчиков: 19086
Последний выпуск: 12.01.2012

Создание изображения

Создание изображения

Автор: mike, www.codenet.ru
31 января 2005 года

Изображение создается с помощью функций 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=imagecolorallocate($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($img,"newimage.jpg");

Примеры

Пример 5.Создания изображения, использующего палитру.

Код:
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.Создания изображения, использующего палитру.

Код:
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);

Назад | Оглавление | Далее

Оставить комментарий

Оставлять комментарии могут только зарегистрированные пользователи.

Если вы не являетесь зарегистрированным пользователем, то вам необходимо зарегистрироваться. Регистрация бесплатна. Если вы уже зарегистрированы на 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)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог