/*---------------------------------------------------------------*/
|
/*
|
Titre : Sépia aspect ancien
|
|
URL : https://phpsources.net/code_s.php?id=984
|
Date édition : 15 Fev 2019
|
*/
|
/*---------------------------------------------------------------*/
|
|
function sepia_convert($src , $dest , $format){
|
/* Paramètres : $src : fichier source
|
* $dest : fichier de destination
|
* $format : format de l'image résultat
|
* ("GIF", "JPG", "PNG", "WBMP")
|
*/
|
if (file_exists($src))
|
$size = getimagesize($src);
|
else
|
return FALSE;
|
|
switch($size[2])
|
{
|
case 1 :
|
if (imagetypes() & IMG_GIF)
|
$pic = imagecreatefromgif($src);
|
break;
|
case 2 :
|
if (imagetypes() & IMG_JPG)
|
$pic = imagecreatefromjpeg($src);
|
break;
|
case 3 :
|
if (imagetypes() & IMG_PNG)
|
$pic = imagecreatefrompng($src);
|
break;
|
default :
|
if (preg_match("/\.wbmp$/i", $src) && (imagetypes() & IMG_WBMP))
|
$pic = imagecreatefromwbmp($src);
|
}
|
if (!$pic)
|
return FALSE;
|
|
$colors_num = imagecolorstotal($pic);
|
|
for($i=0;$i<$colors_num;$i++)
|
{
|
$color = imagecolorsforindex($pic, $i);
|
$r = $color["red"];
|
$g = $color["green"];
|
$b = $color["blue"];
|
|
$s = ($r+$g+$b)/3;
|
|
$contrast = 20;
|
$r = ($s*(100-$contrast)/100) + ($r*$contrast/100);
|
$g = ($s*(100-$contrast)/100) + ($g*$contrast/100);
|
$b = ($s*(100-$contrast)/100) + ($b*$contrast/100);
|
|
$r = $r + ($r*49/100);
|
$g = $g + ($g*45/100);
|
|
if ($r > 255)
|
$r = 255;
|
if ($g > 255)
|
$g = 255;
|
if ($b > 255)
|
$b = 255;
|
|
imagecolorset($pic, $i, $r, $g, $b);
|
}
|
|
$format = strtoupper($format);
|
if ($format == "GIF")
|
{
|
if (imagetypes() & IMG_GIF)
|
imagegif($pic, $dest);
|
else
|
return FALSE;
|
}
|
else if ($format == "JPG")
|
{
|
if (imagetypes() & IMG_JPG)
|
imagejpeg($pic, $dest);
|
else
|
return FALSE;
|
}
|
else if ($format == "PNG")
|
{
|
if (imagetypes() & IMG_PNG)
|
imagepng($pic, $dest);
|
else
|
return FALSE;
|
}
|
else if ($format == "WBMP")
|
{
|
if (imagetypes() & IMG_WBMP)
|
imagewbmp($pic, $dest);
|
else
|
return FALSE;
|
}
|
else return FALSE;
|
return TRUE;
|
}
|
|
| ?> |