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

Автор: Пользователь скрыл имя, 04 Мая 2012 в 19:41, контрольная работа

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

В области программирования для сети 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->255 $factor) {  
        
$pixel->255;  
    }  
    if (
$pixel->$factor) {  
        
$pixel->0;  
    }  
    if (
$pixel->255 $factor) {  
        
$pixel->255;  
    }  
    if (
$pixel->$factor) {  
        
$pixel->0;  
    }  
    if (
$pixel->255 $factor) {  
        
$pixel->255;  
    }  
    if (
$pixel->$factor) {  
        
$pixel->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->$factor + ($factor) * $average_luminance,  
    
$pixel->$factor + ($factor) * $average_luminance,  
    
$pixel->$factor + ($factor) * $average_luminance  
    
);  
}  
?> 

    Результаты (0.5 и 1.5 соответственно):  

 

Соль  и перец

    Эта функция в целом случайным  образом «разбрызгивает» по изображению  белые и черные точки.

 
 
<?php  
function saltAndPepper($pixel, $factor)  
{  
    
$black = (int)($factor/1);  
    
$white = (int)($factor/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->255$factor) * 255,  
    
pow($pixel->255$factor) * 255,  
    
pow($pixel->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