Code solutions to PHP, JS, CSSCode source PHP, JS, CSS

Répandez vos soluces sur la planète

Love me
Solucior » PHP GD IMAGE » Ajuster automatiquement luminosité contraste d'une image

Ajuster automatiquement luminosité contraste d'une image

05/18/2011 par Dux   -   4.9/5 (7 notes)

Ce script ajuste la luminosité et le contraste d'une image grâce à PHP5 et la librairie GD2.
Renseignez la variable $url_img avec le chemin de votre image de départ. Vous pouvez changer la variable  qui correspond à la dimension de l'image de travail du script. Plus cette valeur sera élevée, plus le serveur prendra de temps à faire les calculs.
Il sera peut être utile d'allouer plus de mémoire au script en utilisant en début de script cette ligne :
ini_set('memory_limit', '128M');

Fonctionnement :

  1. Création de la ressource img à partir du fichier source

  2. Création d'une copie temporaire de travail aux dimensions de $taille_echant

  3. Recherche des valeurs maxi de blanc et noir en passant par une palette de 256 couleurs

  4. Application des filtres CONTRAST et BRIGHTNESS sur l'image d'origine en fonction des résultats



code source



 
<?php

// Size of the tempory image (according to the power of your server)
$taille_echant = 70;

// Path to the picture file
$url_img = 'picture.jpg';

// Detect format and create $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);

// Image size
list($x,$y) = getimagesize($url_img);

// Create a smaller tempory image to prevent overloading the server
$img3 = imagecreatetruecolor($taille_echant,$taille_echant);
imagecopyresampled($img3, $img, 0, 0, 0, 0, $taille_echant, $taille_echant, $x, $y);

// Calcul max values of the black and white
$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) {
 
// overex
 
imagefilter ($img, IMG_FILTER_CONTRAST, (-$noir+$blanc) / 10 );
 
imagefilter ($img, IMG_FILTER_BRIGHTNESS, (-$noir+$blanc) / 5);

} else {
 
// underex
 
imagefilter ($img, IMG_FILTER_CONTRAST, (-$blanc-$noir) / 10 );
 
imagefilter ($img, IMG_FILTER_BRIGHTNESS, ($blanc-$noir) / 6);
}


// Now you can display or save your image with $ img
 
?>
Noter ce code     |     Copié : 127x

Commentaires pour Ajuster automatiquement luminosité contraste d'une image

VadimMiVE     08/24/2018 08:21
!              ?          -10  .

    proxrum==@==mail.ru (  =)
    "  "    .      -!
Ajouter un commentaire Pseudo   Site
ZOOM


Ajuster automatiquement luminosité contraste d'une image
Loupe image javascript
Zoom infini CSS3 et Javascript
Isoler une couleur
Largeur image dynamique selon son emplacement
Simple galerie d'images PHP
Ajuster le taux de couleurs d'une image
Ajuster automatiquement la hauteur d'un textarea
Opacité avec javascript
Zoom en CSS3