PHP

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

Изображение создается с помощью функций 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);
Добавлено: 22 Августа 2013 09:26:52 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...