Работа с изображением в PHP

Контрольная работа, 04 Мая 2012, автор: пользователь скрыл имя

Описание работы


В области программирования для сети PHP — один из популярных скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности. Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений. Основные из них: автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;

Работа содержит 1 файл

Работа с изображением в PHP.doc

— 1,022.00 Кб (Скачать)

    Результат ($factor = 20):

 
 

Отсечение

    Не  знаю, насколько эта функция может  оказаться полезной. Она занимается удалением пограничных значений (переходов) цвета, заменя их чистым цветом: если у вас было 5, 155, 250 станет – 0, 155, 255. $factor дает нам гибкость в рисунке. Пока я вижу нужность этой функции для уменьшения размера изображения.

 
<?php  
function clip($pixel, $factor)  
{  
    if (
$pixel->r > 255 - $factor) {  
        
$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($image)  
{  
    
$luminance_running_sum = 0;  
    
$x_dimension = imagesx($image);  
    
$y_dimension = imagesy($image);  
    for (
$x = 0; $x < $x_dimension; $x++) {  
        for (
$y = 0; $y < $y_dimension; $y++) {  
 
            
$rgb = imagecolorat($image, $x, $y);  
            
$r = ($rgb >> 16) & 0xFF;  
            
$g = ($rgb >> 8) & 0xFF;  
            
$b = $rgb & 0xFF;  
 
            
$luminance_running_sum += (0.30 * $r) + (0.59 * $g) + (0.11 * $b);  
 
        }  
 
    }  
    
$total_pixels = $x_dimension * $y_dimension;  
    return 
$luminance_running_sum / $total_pixels;  
}  
?> 

 

    Конечное  же преобразование контраста очень  просто:

<?php  
function contrast($pixel, $factor, $average_luminance)  
{  
    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, $factor)  
{  
    
$black = (int)($factor/2 + 1);  
    
$white = (int)($factor/2 - 1);  
    
$random = mt_rand(0, $factor);  
    
$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_channel, $new_channel);  
    } else {  
        return 
$pixel;  
    }  
}  
?> 

Гамма-коррекция

<?php  
function gamma($pixel, $factor)  
{  
    return new 
Pixel(  
    
pow($pixel->r / 255, $factor) * 255,  
    
pow($pixel->g / 255, $factor) * 255,  
    
pow($pixel->b / 255, $factor) * 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. 
 
 


Информация о работе Работа с изображением в PHP