$imagename = $_SERVER['DOCUMENT_ROOT'] . '/' . $_GET['img'];
$vert_sz = ( isset($_GET['vert_sz']) ) ? $_GET['vert_sz'] : "" ;
$hori_sz = ( isset($_GET['hori_sz']) ) ? $_GET['hori_sz'] : "" ;
// Create source image and dimensions
$imagemime = image_type_to_mime_type($imagename);
// si on a pas pu decouvrir le mime type, on s'appui sur l'extension
if($imagemime == 'application/octet-stream') {
$imagemime = 'image/' . strtolower(substr($imagename, strrpos($imagename, '.') + 1));
}
switch($imagemime) {
case 'image/gif':
$imgcreatfrom = imagecreatefromgif ;
$imgcreat = imagecreate ;
$imgsnd = imagegif ;
break ;
case 'image/jpeg':
$imgcreatfrom = imagecreatefromjpeg ;
$imgcreat = imagecreatetruecolor ;
$imgsnd = imagejpeg ;
break ;
case 'image/jpg':
$imgcreatfrom = imagecreatefromjpeg ;
$imgcreat = imagecreatetruecolor ;
$imgsnd = imagejpeg ;
break ;
case 'image/png':
$imgcreatfrom = imagecreatefrompng ;
$imgcreat = imagecreatetruecolor ;
$imgsnd = imagepng ;
break ;
case 'image/bmp':
$imgcreatfrom = imagecreatefromwbmp ;
$imgcreat = imagecreatetruecolor ;
$imgsnd = imagewbmp ;
break ;
default: $imgcreatfrom = 'false' ; break ;
}
while(true) {
if ( $imgcreatfrom == 'false' ) {
echo "
impossible de determiner le mime type de $imagename
";
break;
}
$src_img = @$imgcreatfrom($imagename);
$srcsize = @getimagesize($imagename);
if (!$srcsize) {
echo "
impossible de determiner la taille de $imagename
";
break;
}
// si on a les deux tailles
if ( ($vert_sz != "") && ($hori_sz != "") ) {
$dest_x = $vert_sz ;
$dest_y = $hori_sz ;
}
// si on a que l'horizontal
elseif ( ($vert_sz == "") && ($hori_sz != "") ) {
$dest_y = $hori_sz ;
$dest_x = ($dest_y / $srcsize[0]) * $srcsize[1];
}
// si on a que le vertical
elseif ( ($vert_sz != "") && ($hori_sz == "") ) {
$dest_x = $vert_sz ;
$dest_y = ($dest_x / $srcsize[0]) * $srcsize[1];
}
// si on a rien
else {
$dest_x = 178;
$dest_y = (178 / $srcsize[0]) * $srcsize[1];
}
if (!$src_img) {
echo "
erreur au lancement de la commande $imgcreatfrom($imagename)";
break;
}
$dst_img = @$imgcreat($dest_x, $dest_y);
if (!$dst_img) {
echo "
erreur au lancement de la commande $imgcreat($dest_x, $dest_y)";
break;
}
// Resize image
if (!@imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dest_x, $dest_y, $srcsize[0], $srcsize[1])) {
echo "
erreur au lancement de la commande imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dest_x, $dest_y, $srcsize[0], $srcsize[1])";
break;
}
// Output image
@header("content-type: " . $imagemime);
if (!@$imgsnd($dst_img)) {
echo "
erreur au lancement de la commande $imgsnd($dst_img)";
break;
}
$_SESSION['image'] = $imagename ;
// Delete images
@imagedestroy($src_img);
@imagedestroy($dst_img);
break;
}