Рецепт №94. Из книги «128 рецептов php»
Перейти к оглавлению
Помимо обработки картинок, с помощью GD можно рисовать простые элементы. В этом рецепте приведен пример нанесения линий. Рисовать можно как на пустых холстах, так и на загруженных изображениях. Линии могут иметь различный цвет, толщину и стиль отображения – не прерывная, пунктир, точки, точка и тире и так далее. Для установки стиля, используется функция imagesetstyle, которая принимает массив с порядком нанесения и цветом пикселей. Чтобы определить толщину линии применяется функция – imagesetthicknes. А для рисования самой линии используется функция imageline,которая принимает значение начальных и конечных координат по осям X и Y.
Пример:
$width = 200; // ширина изображения $height = 200; // высота изображения // создаем изображение, на котором будем рисовать $img = imagecreatetruecolor($width, $height); // цвет заливки фона $rgb = 0xFFFFFF; // заливаем холст цветом $rgb imagefill($img, 0, 0, $rgb); // создаем цвета $red = imagecolorallocate($img, 255, 0, 0); $white = imagecolorallocate($img, 255, 255, 255); $black = imagecolorallocate($img, 0, 0, 0); // координаты линии $x1 = 20; $y1 = 50; $x2 = 180; $y2 = 50; // рисуем обычную линию imageline ($img, $x1, $y1, $x2, $y2, $black); // установка стиля линии (пунктир) // 4 белых пикселя, 4 черных $style = array( $white, $white, $white, $white, $black, $black, $black, $black ); imagesetstyle($img, $style); // координаты линии $x1 = 20; $y1 = 150; $x2 = 180; $y2 = 50; // рисуем пунктирную линию imageline ( $img, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED ); // толщина линии imagesetthickness($img, 5); // координаты линии $x1 = 20; $y1 = 150; $x2 = 180; $y2 = 150; // рисуем толстую линию imageline ($img, $x1, $y1, $x2, $y2, $red); // заголовок для браузера header("Content-Type: image/png"); // выводим результат в браузер imagepng($img); // очищаем память после выполнения скрипта imagedestroy($img);
Помимо уже описанных выше функций, в примере была использована еще одна — imagecolorallocate. С ее помощью можно создавать цвета, для дальнейшего использования при работе с изображением.