Автор: Пользователь скрыл имя, 04 Мая 2012 в 19:41, контрольная работа
В области программирования для сети PHP — один из популярных скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности. Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений. Основные из них: автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
Результат ($factor = 20):
Отсечение
Не знаю, насколько эта функция может оказаться полезной. Она занимается удалением пограничных значений (переходов) цвета, заменя их чистым цветом: если у вас было 5, 155, 250 станет – 0, 155, 255. $factor дает нам гибкость в рисунке. Пока я вижу нужность этой функции для уменьшения размера изображения.
<?php function clip($pixel, $factor) { if ( $pixel->r = 255; } if ($pixel->r < $factor) { $pixel->r = 0; } if ($pixel->g > 255 - $factor) { $pixel->g = 255; } if ($pixel->g < $factor) { $pixel->g = 0; } if ($pixel->b > 255 - $factor) { $pixel->b = 255; } if ($pixel->b < $factor) { $pixel->b = 0; } return $pixel; } ?> |
Результат ($factor = 100):
Корректировка контраста
Эта операция не является операцией над пикселом в чистом виде, поскольку принимает во внимание информацию обо всех пикселях для принятия решения о том, как поступить с данным конкретным. Настройка контраста нуждается в так называемой средней яркости. Чтобы высчитать среднюю яркость вам необходима формула, приведенная в функции ниже.
<?php function getAverageLuminance($ { $luminance_running_sum = 0 $y_dimension = imagesy($ for ($x = 0; $x < $x_dimension; $x for ( $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; } } $total_pixels = $x_ return $luminance_running_ } ?> |
Конечное же преобразование контраста очень просто:
<?php function contrast($pixel, $ { return new Pixel( $pixel->r * $factor + (1 - $factor) * $average_luminance, $pixel->g * $factor + (1 - $factor) * $average_luminance, $pixel->b * $factor + (1 - $factor) * $average_luminance ); } ?> |
Результаты (0.5 и 1.5 соответственно):
Соль и перец
Эта функция в целом случайным образом «разбрызгивает» по изображению белые и черные точки.
<?php function saltAndPepper($pixel, { $black = (int)($factor/2 + 1); $white = (int)($factor/2 - 1); $random = mt_rand(0, $ $new_channel = false; if ($random == $black) { $new_channel = 0; } if ($random == $white) { $new_channel = 255; } if (is_int($new_channel)) { return new Pixel($new_channel, $new_ } else { return $pixel; } } ?> |
Гамма-коррекция
<?php function gamma($pixel, $factor { return new pow($pixel->r / 255, $ pow($pixel->g / 255, $ pow($pixel->b / 255, $ ); } ?> |
Пример ($factor =
2.2):
Заключение:
В данной
статье рассмотрены основы создания изображений
в PHP. На не сложных примерах показано,
как можно создавать изображения на основе
ввода пользователя. Взяв за основу этот
пример, вы сможете создавать изображения
для решения ваших конкретных задач.
Список
использованной литературы:
Кристиан Дари, Эмилиан Баланеску PHP и MySQL: создание интернет-магазина = Beginning PHP and MySQL E-Commerce: From Novice to Professional. — М.: «Вильямс», 2010. — ISBN 978-5-8459-1602-0
Кузнецов Максим, Симдянов Игорь PHP 5/6. — Спб.: «БХВ-Петербург», 2009. — С. 1024. — ISBN 978-5-9775-0304-4
Кузнецов Максим, Симдянов Игорь Объектно-ориентированное программирование на PHP. — Спб.: «БХВ-Петербург», 2007. — С. 608. — ISBN 978-5-9775-0142-2
Эд Леки-Томпсон, Алек Коув, Стивен Новицки, Хьяо Айде-Гудман PHP 5 для профессионалов = Professional PHP 5. — М.:«Диалектика», 2006. — С. 608. — ISBN 0-7645-7282-2
Кузнецов Максим, Симдянов Игорь Самоучитель PHP 5/6. — 3-е изд., перераб. и доп.. — Спб.: «БХВ-Петербург», 2009. — С. 672. — ISBN 978-5-9775-0409-6
Кузнецов Максим, Симдянов Игорь PHP . Практика создания Web-сайтов. — 2-е изд. перераб. и доп.. — Спб.: «БХВ-Петербург», 2008. — С. 1264. — ISBN 978-5-9775-0203-0
Кузнецов Максим, Симдянов Игорь Головоломки на PHP для хакера. — 2-е изд. перераб. и доп.. — Спб.: «БХВ-Петербург», 2008. — С. 544. — ISBN 978-5-9775-0204-7
Кузнецов Максим, Симдянов Игорь, Голышев Сергей PHP 5 на примерах. — Спб.: «БХВ-Петербург», 2005. — С. 576. — ISBN 5-94157-670-6
Дмитрий Котеров, Алексей Костарев PHP. В подлиннике. — Спб.: «БХВ-Петербург», 2005. — С. 1120. — ISBN 5-94157-245-Х
Костарев А. Ф. PHP 5. — Спб.: «БХВ-Петербург», 2008. — С. 1104. — ISBN 978-5-9775-0315-0.