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

Ваш аккаунт

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

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

Подписчиков: -1
Последний выпуск: 19.06.2015

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

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

Автор: 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);

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

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

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
86K
13 октября 2012 года
Bikutotoro
0 / / 13.10.2012
+2 / -0
Мне нравитсяМне не нравится
13 октября 2012, 02:19:49
imagecreatetruecolor(х, у) - почему не указали, что только чёрный квадрат создаёт? Час убил на сравнение цветного кода и чёрной картинки, прежде чем в мануале наконец-то вычитал.
2.
36K
31 января 2008 года
soaring
0 / / 31.01.2008
+1 / -0
Мне нравитсяМне не нравится
31 января 2008, 14:32:59
это я web-master'у
3.
36K
31 января 2008 года
soaring
0 / / 31.01.2008
+1 / -0
Мне нравитсяМне не нравится
31 января 2008, 14:32:38
а для чего в пхп циклы и управляющие конструкции? или ты никогда в модуле graph не рисовал синусоиду в паскале?
4.
Аноним
+1 / -0
Мне нравитсяМне не нравится
12 октября 2005, 14:01:20
Ваще можно не писать хеадер, он только для того чтобы сразу показывалсяч рисунок, а мне кажется это редко надо...

а синтаксис imagejpeg("newimage.jpg"); скорее выглядит вот так imagejpeg($img, "newimage.jpg");
5.
Аноним
+1 / -0
Мне нравитсяМне не нравится
12 октября 2005, 14:00:38
Ваще можно не писать хеадер, он только для того чтобы сразу показывалсяч рисунок, а мне кажется это редко надо...

а синтаксис imagejpeg("newimage.jpg"); скорее выглядит вот так imagejpeg($img, "newimage.jpg");
6.
Аноним
+1 / -0
Мне нравитсяМне не нравится
1 февраля 2005, 13:47:48
В. Пойс, нафиг библиотеки ? если можно нарисовать и без них..т.е с помощью стардартной GD ?
7.
Аноним
+1 / -0
Мне нравитсяМне не нравится
1 февраля 2005, 03:37:45
Рисование графиков в PHP смотри http://www.aditus.nu/jpgraph/
Есть еще аналогичные бесплатные библиотеки.
8.
Аноним
Мне нравитсяМне не нравится
31 января 2005, 18:24:11
Начальные уроки хорошо :) а вот когда будет типа рисование графиков ? :8)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог