<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Рисование в PHP

Рисование в PHP

В прошлой статье мы с Вами познакомились с основными принципами создания изображений в 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, создавая свои графические шедевры!

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (13):

Alim_(I) Alim_(I) 26.06.2011 15:27:22

У меня почему-то вместо рисунка ошибка вышла: 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 . А дальше сплошные иероглифы вот такие

Ответить

Admin Admin 26.06.2011 15:28:35

Вы просто скопировали код из примера? Или добавили что-то своё? Такая ошибка возникает, когда до header() вызывается echo или идёт HTML-код.

Ответить

Alim_(I) Alim_(I) 26.06.2011 15:35:05

Скопировал

Ответить

Admin Admin 26.06.2011 15:37:13

Тогда убедитесь, что нет никаких лишних пробелов, переходов на новые строки и прочего за пределами <?php ?>. Также если стоит кодировка UTF-8, то поставьте UTF-8 без BOM.

Ответить

Alim_(I) Alim_(I) 26.06.2011 15:52:52

Вот код: <?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); ?>

Ответить

Admin Admin 26.06.2011 15:54:35

Прекрасно всё рисуется. Читайте предыдущее сообщение.

Ответить

Alim_(I) Alim_(I) 26.06.2011 15:56:40

У меня всё та же ошибка стоит P.S. Проверял, обновилось

Ответить

Admin Admin 26.06.2011 16:01:15

И почему Вы обманываете, что просто скопировали код? Test.php:231 - это откуда? В данном коде нет 231-й строки.

Ответить

Alim_(I) Alim_(I) 26.06.2011 16:11:06

Я вставил этот код в файле в котором уже содержался контент

Ответить

Admin Admin 26.06.2011 16:12:47

Так я про это и спрашивал. Вы там используете небось целую кучу echo или вообще HTML-код. В следующий раз внимательнее читайте ответы.

Ответить

Alim_(I) Alim_(I) 26.06.2011 16:42:09

Там не было использованно ранее этого ни одного PHP, и JavaScript кода.

Ответить

Admin Admin 26.06.2011 16:44:28

Последний раз повторяю. Вы там использовали HTML - это ЗАПРЕЩЕНО (!!!) использовать до вызова функции header().

Ответить

irin irin 10.04.2014 18:25:34

Получается, что кроме изображения больше ничего не может быть в файле? Весь остальной контент игнорируется, выводится только изображение.

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.