Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы по МИРу.doc
Скачиваний:
22
Добавлен:
28.04.2019
Размер:
572.42 Кб
Скачать

12. Работа с динамическими изображениями

Все функции графической поддержки PHP, ориентированы на графическую библиотеку GD, которую нужно извлечь из сети и отдельно установить . библиотека находится по адресу: http://www.boutell.com/gd.

Функция GetIimageSize () предназначена для быстрого определения в сценарии размеров (в пикселах) и формата рисунков, имя которого передано ей в качестве аргумента в первом параметре. Функция возвращает список из 4-х элементов. Первый элемент с ключом 0 хранит ширину картинки в пикселях, второй с ключом 1 – его высоту. Ячейка массива с ключом 2 определяется форматом изображения: 0 – если это GIF, 1 – в случае JPEG и 2 – PNG. Следующий элемент, имеющий ключ 3, содержит строку вида height=sx width=sy, где sx и sy соответственно ширина и высота изображения, строка предназначена для включения в тег IMG.

Создание и вывод изображений

Для работы с изображениями используются специальные функции, которые ссылаются на библиотеку GD. Библиотека является набором инструментальных средств, позволяющих создавать динамические изображения и работать с ними.

Перед тем, как начать работу, нужно создать окно изображения и присвоить ему идентификатор. Это делается с помощью функции imagecreate (), требующей два аргумента – высоту и ширину окна. Данная функция возвращает идентификатор изображения, который затем будет передаваться большинству функций.

После получения идентификатора изображения, для того чтобы вывести его на экран броузера используется функция imageif (), аргументом которой идентификатор изображения.

Фунции imageCreateFromPng (), imageCreateFromJpeg (), imageCreateFromGif () позволяют загрузить картинку с диска, в зависимости от формата изображения. При сохранении на диск или выводе в браузер функцией imagePng (), imageJpeg (), imageGif () картинка автоматически упаковывается.

Определение параметров изображения

Определить размер загруженной картинки, можно воспользовавшись функциями image SX (идентификатор) и imageSY (идентификатор). Функции возвращают соответственно горизонтальный и вертикальный размер изображения, заданного своим идентификатором.

Функция imagecolortotal (идентификатор) возвращает текущее количество цветов в палитре. (для GIF)

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

Функции imagePng (идентификатор, [имя файла]),

imageJpeg (идентификатор, [имя файла]),

ImageGif (идентификатор, [имя файла])

Типы изображений

Функция imagetypes () возвращает целое число, представляющее собой битовую маску, в которой установлены биты типов изображений

Задание цвета

Для работы с цветом необходимо задать идентификатор цвета. Это делается с помощью функции imagecolorallocate (), аргументами которой являются идентификатор изображения и три целочисленных значения от 0 до 255, которые определяют интенсивность красной, зеленой и синей компоненты цвета соответственно. Функция возвращает идентификатор изображения, который можно использовать для задания цвета фигур, заливки и цвета.

$red=imagecolorallocate ($image, 255, 0, 0);

Рисование линий

Перед тем как рисовать линию, нужно определить координаты ее начала и конца.

Функция imageline () рисует линию сплошную тонкую от одной точки с заданными координатами до другой. Нумерация

Функция imagedashedline () рисует не сплошную, а пунктирную линию.

Заливка цветом

PHP дает возможность выполнить заливку области цветом. Аргументами функции imagefill () являются идентификатор изображения, координаты, с которых нужно начать заливку и идентификатор цвета.

Рисование дуг

С помощью функции imagearc () можно добавлять к изображению разомкнутые или замкнутые дуги. Фигура не закрашивается, обводится только ее контур.

imagearc ($image, 99, 99, 200, 200, 0, 90, $blue); //

Рисуется дуга с центром в координате 99, 99. Общая ширина и высота дуги составляет 200 точек. Дуга начинается в 3-х часах и продолжается 90 градусов (до 6 часов).

imagearc ($image, 99, 99, 180, 180, 0, 360, $blue); // рисование круга

Рисование прямоугольников—В PHP прямоугольники рисуются с помощью функции imagerectangle ().

Рисование многоугольников—Более сложные фигуры рисуются с помощью функции imagepolygon ().

Задание прозрачности цвета—Функция imagecolortransparent ().

Получение RGB-составляющих

Функция imagecolorforindex (идентификатор картинки, идентификатор цвета) возвращает ассоциативный массив с ключами red, green blue, которым соответствуют значения, равные величинам компонент RGB в идентификаторе цвета.

Работа с текстом

Текст печатается в изображении с помощью функции imageTTFtext (). Этой функции требуется восемь аргументов: идентификатор изображения, аргумент, задающий высоту символов, угол наклона строки, начальные координаты (один для оси – х и один для оси – y), идентификатор цвета, путь к файлу со шрифтом TrueType и текст, который нужно вывести.

Координаты текста – это координаты опорной строки первого символа теста.

imageTTFtext ($image, 50, 0, 20, 100, $blue, $font, “Welcome!”);

Проверка размеров текста

Для точного определения размеров текста можно воспользоваться функцией imageTTFbox (). Она возвращает размер занимаемого текстом поля. Функции в качестве аргументов нужно передать размер шрифта, угол наклона строки, путь к файлу шрифта, а также текст, который хотим выводить. Данная функция возвращает 8-элементный массив.

  • 0—Левый нижний угол (по горизонтальной оси)

  • 1—Левый нижний угол (по вертикальной оси)

  • 2—Правый нижний угол (по горизонтальной оси)

  • 3—Правый нижний угол (по вертикальной оси)

  • 4—Правый верхний угол (по горизонтальной оси)

  • 5—Правый верхний угол (по вертикальной оси)

  • 6—Левый верхний угол (по горизонтальной оси)

  • 7—Левый верхний угол (по вертикальной оси)

Операции с изображениями

Копирование изображений с масштабированием

Функция imagecopyresized () позволяет копировать изображения или их участки, перемещать и масштабировать их.

Копирование изображений

Функция imagecopy () предназначена для копирования прямоугольных фрагментов изображения. Копирование со слиянием

Функция imagecopymerge () производит копирование фрагмента исходного изображения в другое. Слияние изображений осуществляется в соответствии со значением указанного коэффициента, который принимает значение от 0 до 100. Яркость коррекции

Функция imagegammacorrect () предназначена для тотальной коррекции яркости всего изображения целиком.