ВСЕ СТАТЬИ
Блог начинающего программиста
Кнопка войти через Яндекс
Регистрация
Программирование на JavaScript для начинающих 2.0

Самый востребованный язык программирования

Какой язык программирования должен знать абсолютно любой программист?

Узнай прямо сейчас!

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

Опубликовано:

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

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 хостинг ХостиЯ