ВСЕ СТАТЬИ
Блог начинающего программиста
Регистрация
Создание крупного проекта на Java с Нуля

Создание крупного проекта на Java с нуля

Посмотри, как с нуля создаётся сложный проект на Java

Получить видеоуроки

Изображение, цвет кодами PHP и HTML

Опубликовано: 2017-07-31

Изображение человечка и текста

PHP создает и управляет изображениями разных форматов. Наиболее часто используются форматы jpg, gif, png. PHP способен выводить потоковое изображение в браузер. Для этого необходима графическая библиотека GD library. Проверить, если ли доступ к ней, можно при помощи кода

<?php echo phpinfo(); ?>

Файл с ним надо разместить на сервере. Открыть его в браузере, и в открывшемся списке найти секцию GD. Если она есть, значит библиотека подключена.

В PHP есть много Функций для работы с изображениями. Функция resource imagecreatetruecolor ( int $width , int $height ) в качестве аргументов принимает ширину и длину изображения. Возвращает результат с данными ресурсного типа, то есть работа с ним происходит в памяти.

Задание:

Нарисовать человечка. Без фанатизма.

Выполнение:


<?php
$im = imagecreatetruecolor(800, 800);
$c = imagecolorallocate($im, 120, 220, 150); //Создание цвета изображения
imageArc ($im, 400, 100, 150, 170, 0, 360, $c);
imageArc ($im, 400, 370, 250, 370, 0, 360, $c);
imageLine ($im, 300, 262, 150, 200, $c); //левая рука
imageLine ($im, 500, 262, 650, 200, $c); //правая рука
imageLine ($im, 320, 512, 300, 750, $c); //левая нога
imageLine ($im, 480, 512, 500, 750, $c); //правая нога
imagearc ($im, 400, 150, 30, 15, 0, 180, $c); //рот
imageFilledRectangle ($im, 330, 250, 400, 350, $c);//карман
imageRectangle ($im, 390, 90, 410, 130, $c);//нос
//снегопад
for ($i = 0; $i < 1000; $i++)
{
    $x = mt_rand (0, imageSX($im));//imageSX - Получение ширины изображения
    $y = mt_rand (-800, imageSY($im));
    imageSetPixel ($im, $x, $y, $c);//рисует точку (пиксель) на заданных координатах.
}

Посмотреть результат выполнения скрипта в браузере.

человечек

Изображение уменьшено

Следующее задание:

Создать текстовое поле. Нарисовать текст, который был введен в созданное поле. Сохранить получившееся изображение в отдельный файл и вывести его на странице с формой.

Реализация:

Понимание скрипта полезно для создания простейшей каптчи. Создается файл html под названием imo.html c формой для ввода текста и отправки методом post на обработчик php под названием iso.php. Файл iso.php средствами php под управлением созданного скрипта генерирует текст, который был введен в форме файла imo.html. И если задать в этом файле редирект на предыдущую страницу, то откроется страница с формой и рисунком.

Файл imo.html:


<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8">
        <title>Изображения</title>
    </head>
    <body>
        <form action="iso.php" method="post">
            <input type="text" name="x">
            <input type="submit">
        </form>
        <br />
        <img src="iso.png" alt="iso">
    </body>
</html> 

Файл обработчик iso.php
.

<?php
$x = $_POST['x'];
$im = imageCreateTrueColor (190, 50);
$c = imageColorAllocate ($im, 255, 255, 255);
//$x = iconv ("CP1251", "UTF-8", $x); //Преобразует набор символов строки x из кодировки CP1251 в UTF-8.
imageTtfText ($im, 20, 0, 10, 30, $c, "verdana.ttf", $x);//Рисование текста на изображении шрифтом TrueType verdana.ttf
header ("Content-type: image/png");
imagePng ($im, "iso.png");
imageDestroy ($im);
header("Location: ".$_SERVER['HTTP_REFERER']); //редирект на предыдущую страницу imo.html
?>

Посмотреть результат выполнения скрипта в браузере можно в новом окне.

Определение цвета точки (пикселя) изображения

Это может потребоваться для определения цвета пикселя изображения в целях коррекции изображения, в дизайне для настройки цвета фона сайта, его кнопок, панелей. В графических редакторах, таких как Paint, Photoshop, это делается с помощью инструмента "Пипетка". В PHP это делает функция imageColorAt().

В стилях CSS цвет можно указать в формате RGB. Цвет задается в красной, зеленой и синей составляющей с использованием десятичной системы исчисления, или в процентном отношении. В десятичном исчислении значения лежат в пределах от 0 до 255, в процентном отношении - 100% соответствует значению 255.

Задача:

Создать форму с полями Х и У. Узнать цвет пикселя c координатами Х и У и вывести в формате (R, G, B).

Решение:



<?php
    $x = $_POST['x'];
    $y = $_POST['y'];
    $im = imageCreateFromJpeg ("image.jpg");
    $color = imagecolorat ($im, $x, $y);
    $r = ($color >> 16) & 0xFF;
    $g= ($color >> 8) & 0xFF;
    $b = ($color) & 0xFF;
    echo "Цвет точки x = $x, y = $y: (R = $r, G = $g, B = $b)";
?>

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8">
        <title>Цвет изображения</title>
    </head>
    <body>
        <form method="post">
            <input  type="text" name="x">
            <input  type="text" name="y">
            <input  type="submit">
        </form>
    </body>
</html>


Кипящий чайник с выхлопом клубов пара из носика

Интенсив «Основы программирования»

Бесплатный курс по программированию

Начать обучение

Бесплатный курс по основам PHP

Бесплатный Видеокурс по PHP!

Пример создания PHP-сайта!

Подробнее

Комментарии

Пока комментарий нет

Оставить свой комментарий:

Важно! Только у зарегистрированных пользователей имеется защита оригинального имени. Поэтому посторонние пользователи не имеют возможности комментировать от их имени. Зарегистрироваться

Имя:
Электронная почта:
Текст комментария:
Введите код с картинки:
картинка
PHP хостинг ХостиЯ