Автоматическая корректировка яркости и контрастности средствами PHP
Данный php скрипт предназначен для автоматической нормализации изображений. Скрипт сам определяет и высчитывает уровни яркости и контрастности, и в зависимости от результатов, уменьшает или увеличивает яркость и контрастность изображения.
Если обрабатывать каждое изображение в ручную с помощью, скажем, фотошопа, то на одно изображение уйдет пару минут. Скрипт же сделает все за секунду, избавив вас от рутины обрабатывать каждое изображение в отдельности.
Лично я подключил данный скрип к движку своего сайта и теперь все изображения проходят нормализацию по умолчанию.
Изображение до обработки, и после обработки скриптом:
Требования: PHP5 и библиотека GD2.
В принципе, на локальном Денвере работает без проблем, если на хостинге возникнут проблемы, то следует написать в службу поддержки вашего хостинга, с просьбой подключить библиотеку GD2 и обновить до версии 2.0.
Учтите, что при обработки больших изображений потребуются значительные ресурсы и время затраченное на выполнение задания.
В принципе, ничего настраивать не нужно - установили и пользуйтесь.
Если обрабатывать каждое изображение в ручную с помощью, скажем, фотошопа, то на одно изображение уйдет пару минут. Скрипт же сделает все за секунду, избавив вас от рутины обрабатывать каждое изображение в отдельности.
Лично я подключил данный скрип к движку своего сайта и теперь все изображения проходят нормализацию по умолчанию.
Изображение до обработки, и после обработки скриптом:
Требования: PHP5 и библиотека GD2.
В принципе, на локальном Денвере работает без проблем, если на хостинге возникнут проблемы, то следует написать в службу поддержки вашего хостинга, с просьбой подключить библиотеку GD2 и обновить до версии 2.0.
Учтите, что при обработки больших изображений потребуются значительные ресурсы и время затраченное на выполнение задания.
<?php
// Размер временного изображения (в зависимости от мощности вашего сервера)
$taille_echant = 70;
// Путь к файлу изображения
$url_img = 'name.jpg';
// Определить формат изображения $img
$part = pathinfo($url_img);
$ext = strtolower($part['extension']);
if ($ext == "jpg" or $ext == "jpeg") $img = imagecreatefromjpeg($url_img);
if ($ext == "gif") $img = imagecreatefromgif($url_img);
if ($ext == "png") $img = imagecreatefrompng($url_img);
// Определяем размер изображения
list($x, $y) = getimagesize($url_img);
// Создаем небольшое временное изображение, чтобы предотвратить перегрузку сервера.
$img3 = imagecreatetruecolor($taille_echant,$taille_echant);
imagecopyresampled($img3, $img, 0, 0, 0, 0, $taille_echant, $taille_echant, $x, $y);
// Максимальные значение, калькуляции
$noir = 255;
for( $x = 0; $x < $taille_echant; $x = $x + 1 ) {
for( $y = 0; $y < $taille_echant; $y = $y + 1 ) {
$color_index = imagecolorat($img3, $x, $y);
$c = ImageColorsForIndex( $img3, $color_index );
$t = ($c["red"] + $c["green"] + $c["blue"])/3;
if ($t<$noir) $noir = $t;
if ($t>$blanc) $blanc = $t;
}
}
$blanc = 255 - $blanc;
if ($noir > $blanc) {
// Если низкая яркость и контрастность
imagefilter ($img, IMG_FILTER_CONTRAST, (-$noir+$blanc) / 10 );
imagefilter ($img, IMG_FILTER_BRIGHTNESS, (-$noir+$blanc) / 5);
} else {
// Если слишком высокая яркость и контрастность
imagefilter ($img, IMG_FILTER_CONTRAST, (-$blanc-$noir) / 10 );
imagefilter ($img, IMG_FILTER_BRIGHTNESS, ($blanc-$noir) / 6);
}
// Теперь вы можете отобразить или сохранить изображение с помощью $img
//В этом примере сохраним изображение преобразуя его в формат jpg и даем новое имя
imagealphablending($img, true);
imagejpeg($img, 'new_img.jpg');
// освобождаем память
imagedestroy($img);
?>
В принципе, ничего настраивать не нужно - установили и пользуйтесь.
Похожие статьи
Как переехать на https
Полезное
24.03.17
Простой пример передачи HTML на AJAX + JQUERY
AJAX / JQUERY
23.03.17
Бесплатные фотобанки (фотостоки) для дизайнера
Дизайн
22.03.17
Как установить кодировку скрипта в php
PHP
21.03.17