- PHP Graphics: Drawing Line, Rectangle, Polygon, Arc, Ellipse, Patterned Line
- PHP Draw Lines
- Parameters
- Example: imageline()
- Output: ImageLine()
- PHP Draw Rectangles
- Parameters
- Example
- Output: Draw Rectangle
- PHP Draw Polygons
- Parameters
- Example- imagepolygon()
- Output
- PHP Draw Arcs
- Parameters
- Example- ImageArc()
- Output
- PHP Draw Ellipses
- Parameters
- Example- ImageEllipse()
- PHP Draw Patterned Lines
- Parameters
- Example- ImageSetStyle()
- Рисование в PHP
- Комментарии ( 14 ):
PHP Graphics: Drawing Line, Rectangle, Polygon, Arc, Ellipse, Patterned Line
PHP provides many functions to draw lines, rectangles, polygons, arcs, ellipses, and much more. The GD library is utilized for dynamic picture creation. In PHP, we can easily use the GD library to make GIF, PNG, or JPG pictures quickly from our code. So there is no need to write HTML and CSS code. We can easily handle this using the PHP programming language.
If you are unsure that you have the GD library, you can run phpinfo() to check that GD support is enabled. On the off chance that you don’t have it, you can download it for free.
PHP Draw Lines
PHP provides the imageline() function to draw a line between the two given points.
imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color ) : bool
Parameters
$image— An image resource, this is returned by the imagecreatetruecolor() function.
$x1— x coordinate for the first point.
$y1— y coordinate for the first point.
$x2— x coordinate for the second point.
$y2— y coordinate for the second point.
$color— color identified by the imagecolorallocate().
It returns a boolean value, TRUE on success and FALSE on failure.
Example: imageline()
?php $image = ImageCreateTrueColor(270, 150); imagesavealpha($image, true); $trans_colour = imagecolorallocatealpha($image, 0, 0, 0, 127); imagefill($image, 0, 0, $trans_colour); $x1 = $y1 = 0 ; $x2 = 270; $y2 = 150; $color = #4a235a; ImageLine($image, $x1, $y1, $x2, $y2, $color); header('Content-type: image/png'); ImagePNG($image); ImageDestroy($image); ?>
In the above example, the ImageCreateTrueColor() function creates a new true color image. imagesavealpha() function sets a flag to retain full alpha channel information. imagecolorallocatealpha() function allocates a color for an image, i.e., a transparent color, which is filled by the imagefill() function.
Output: ImageLine()
PHP Draw Rectangles
PHP provides the imagefilledrectangle() function to draw a filled rectangle.
imagefilledrectangle($image, $x1, $y1, $x2, $y2, $color)
Parameters
$image— An image resource. This is returned by the imagecreatetruecolor() function.
$x1, $y1— x and y coordinates for point 1.
$x2, $y2— x and y coordinates for point 2.
$color— color identified by imagecolorallocate().
Example
?php $x = 180; $y = 110; $image=imagecreatetruecolor($x, $y); //set red color $red = imagecolorallocatealpha($image, 255, 0, 0, 75); imagefilledrectangle($image, 0, 0, $x, $y, $red); header('Content-type: image/png'); ImagePNG($image); ImageDestroy($image); ?>
In the above example, we allocated a color for the rectangle using the imagecolorallocatealpha() function.
Output: Draw Rectangle
PHP Draw Polygons
PHP provides the ImagePolygon() function to draw polygon.
imagepolygon($image, $points, $numpoints, $color)
Parameters
$image— An image resource, this is returned by the imagecreatetruecolor() function.
$points— An array containing polygon vertices.
$numpoints— Total number of points.
$color— color identified by imagecolorallocate()
Example- imagepolygon()
?php $x = 250; $y = 210; $image=imagecreatetruecolor($x, $y); $white= imagecolorallocatealpha($image, 255, 255, 255, 75); // Draw the polygon imagepolygon($image, array( 10, 10, 50, 140, 100, 200, 220, 180 ), 4, $white); header('Content-type: image/png'); ImagePNG($image); ImageDestroy($image); ?>
Output
PHP Draw Arcs
PHP provides the ImageArc() function for drawing arcs.
ImageArc($image, $x, $y, $width, $height, $start, $end, $color);
Parameters
$image — An image resource, this is returned by the imagecreatetruecolor() function.
$x, $y— To set the x and y coordinates of the center.
$width, $height— To set the width and height of an arc.
$start— To set the arc start angle in degree.
$end— To set the arc end angle in degree.
$color— Color identified by the imagecolorallocate().
Example- ImageArc()
?php $x = 200; $y = 200; $image=imagecreatetruecolor($x, $y); $white= imagecolorallocatealpha($image, 255, 255, 255, 75); // Draw an arc imagearc($image, 100, 100, 150, 150, 25, 155, $white); header('Content-type: image/png'); ImagePNG($image); ImageDestroy($image); ?>
Output
PHP Draw Ellipses
PHP provides the ImageEllipse() function to draw an ellipse.
ImageEllipse($image, $x, $y, $width, $height, $color);
Parameters
$image — An image resource, this is returned by the imagecreatetruecolor() function.
$x, $y — To set x and y coordinates of the center.
$width — To set the ellipse width.
$height — To set the ellipse height.
$color — Color identified by the imagecolorallocate().
Example- ImageEllipse()
?php $x = 150; $y = 200; $image=imagecreatetruecolor($x, $y); $yellow = imagecolorallocatealpha($image, 255, 255, 0, 75); // Draw an ellipse imageellipse($image, 70, 100, 100, 150, $yellow); header('Content-type: image/png'); ImagePNG($image); ImageDestroy($image); ?>
PHP Draw Patterned Lines
In PHP, we can draw patterned lines with the help of the ImageSetStyle() and the ImageFilledRectangle() functions. The ImageSetStyle() function sets the style for line drawing.
Parameters
$image— An image resource, this is returned by imagecreatetruecolor() function.
$style— This is an array of pixel colors. To pass this, we have used IMG_COLOR_STYLE in ImageFilledRectangle() function.
Example- ImageSetStyle()
?php $x = 50; $y = 50; $black = 0x000000; $white = 0xFFFFFF; $image=imagecreatetruecolor($x, $y); $style = array($white, $white, $white, $white, $white, $black, $black, $black, $black, $black); ImageSetStyle($image, $style); ImageFilledRectangle($image, 0, 0, 60, 60, IMG_COLOR_STYLED); header('Content-type: image/png'); ImagePNG($image); ImageDestroy($image); ?>
Рисование в PHP
В прошлой статье мы с Вами познакомились с основными принципами создания изображений в PHP. А в этой статье мы с Вами будет рисовать различные графические примитивы в PHP: точку, линию, прямоугольник, дуги (в частном случае, эллипс и окружность) и многоугольники.
Я решил, что самый простой способ усвоения данного материала — это привести относительно большой код, а затем подробнейшим образом его объяснить. Вдобавок, Вы можете его сразу же скопировать и вставить к себе в скрипт, посмотрев на результат.
$i = imageCreate(200, 300);
$color = imageColorAllocate($i, 255, 255, 0);
imageSetPixel($i, 30, 50, $color);
$color = imageColorAllocate($i, 255, 0, 0);
imageSetThickness($i, 3);
imageLine($i, 10, 10, 100, 100, $color);
imageSetThickness($i, 10);
imageRectangle($i, 0, 0, imageSX($i), imageSY($i), $color);
$color = imageColorAllocate($i, 255, 0, 0);
imageFilledRectangle($i, 100, 200, 150, 240, $color);
imageSetThickness($i, 2);
imageArc($i, 50, 100, 40, 50, 90, 300, $color);
$color = imageColorAllocate($i, 0, 255, 0);
imagePolygon($i, array(10, 20, 120, 250, 190, 290, 100, 290, 10, 20), 4, $color);
Header(«Content-type: image/jpeg»);
imageJpeg($i);
imageDestroy($i);
?>
Код очень прозрачный. Пожалуй, рисование в PHP (да и в других языках тоже) — это самое простое занятие, однако, чтобы его понять и уметь использовать надо знать основной набор функций, которые, в частности, использовались в примере выше. И поэтому давайте я сейчас Вас с ними познакомлю:
- imageSetPixel(resource image, int x, int y, int color) — элементарная функция, знаний которой уже теоретически достаточно для рисования абсолютно любых изображений в PHP. Данная функция рисует пиксель с координатами x и y на изображении image с цветом color.
- imageSetThickness(resource image, int thickness) — функция, устаналивающая толщину линий при рисовании прямоугольников, эллипсов, самих линий и других фигур в PHP.
- imageLine(resource image, int x1, int y1, int x2, int y2, int color) — важнейшая функция, позволяющая рисовать линии на изображении image из начальной точки с координатами x1 и y1 в конечную точку с координатами x2 и y2. Линия будет нарисована цветом color.
- imageRectangle(resource image, int x1, int y1, int x2, int y2, int color) — функция для рисования контура прямоугольника на изображении image с координатами левого верхнего угла x1 и y1 и с координатами правого нижнего угла — x2 и y2. Цвет контура прямоугольника будет color.
- imageFilledRectangle(resource image, int x1, int y1, int x2, int y2, int color) — аналогична функции imageRectange(), однако, эта функция рисует не контур, а уже закрашенный прямоугольник.
- imageArc(resource image, int cx, int cy, int w, int h, int s, int e, int color) — эта функция в общем случае рисует дугу эллипса на изображении image с координатами центра cx и cy. Ширина и высота эллипса — w и h соответственно. Начальный угол — s, конечный угол — e. Обратите внимание, что ноль находится на 3-х часах (кто помнит из тригонометрии единичную окружность и вспомнит, где ноль — сразу поймут, а другим лучше посмотреть результат выполнения данной функции и проаналазировать результат). Рисование дуги в PHP идёт против часовой стрелки (как и на единичной окружности в тригонометрии). Цвет дуги задаётся аргументов color. Если Вы укажите параметр s = 0, а e = 360, то у Вас получится эллипс. А если ещё при этом w = h, то получится окружность.
- imagePolygon(resource image, array points, int num_points, int color) — рисует многоугольник на изображении image с координатми вершин, заданных в массиве points (x1, y1, x2, y2 и так далее) и общим количеством вершин, заданным num_points. Цвет линий задан аргументом color.
Все остальные функции, которые мы использовали в примере, были подробно описаны в статье: создание изображений в PHP.
Вот и всё! Дальше я рекомендую Вам внимательнейшим образом изучить пример выше, запустить его, поиграться с ним. И после этого Вы уже сможете легко рисовать в PHP, создавая свои графические шедевры!
Создано 25.03.2011 13:31:26
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
Она выглядит вот так: - Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт - BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 14 ):
У меня почему-то вместо рисунка ошибка вышла: Warning: Cannot modify header information — headers already sent by (output started at Z:homeIAlim.ruwwwTest.php:231) in Z:homeIAlim.ruwwwTest.php on line 252 . А дальше сплошные иероглифы вот такие
Вы просто скопировали код из примера? Или добавили что-то своё? Такая ошибка возникает, когда до header() вызывается echo или идёт HTML-код.
Тогда убедитесь, что нет никаких лишних пробелов, переходов на новые строки и прочего за пределами . Также если стоит кодировка UTF-8, то поставьте UTF-8 без BOM.
Прекрасно всё рисуется. Читайте предыдущее сообщение.
У меня всё та же ошибка стоит P.S. Проверял, обновилось
И почему Вы обманываете, что просто скопировали код? Test.php:231 — это откуда? В данном коде нет 231-й строки.
Я вставил этот код в файле в котором уже содержался контент
Так я про это и спрашивал. Вы там используете небось целую кучу echo или вообще HTML-код. В следующий раз внимательнее читайте ответы.
Там не было использованно ранее этого ни одного PHP, и JavaScript кода.
Последний раз повторяю. Вы там использовали HTML — это ЗАПРЕЩЕНО (. ) использовать до вызова функции header().
Получается, что кроме изображения больше ничего не может быть в файле? Весь остальной контент игнорируется, выводится только изображение.
Спасибо за статью! Объясняю для новичков — вы создаете КАРТИНКУ, т.е. отдельный файл с картинкой! Например урл картинки: http://мой-сайт/test.php Теперь хотите использовать эту картинку у себя в коде, для этого пользуетесь так:
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.