1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
///************************************************
// Récupération de l'image par PEAR_HTTP_UPLOAD
require 'HTTP/Upload.php';
$upload = new http_upload('fr');
$file = $upload->getFiles('file');
if ($file->isValid()) {
$tabPropertyFile = $file->getProp();
}
$file->setName('test.'.strtolower($tabPropertyFile['ext']));
$dest_dir = '/images/';
$dest_name = $file->moveTo($dest_dir);
//****************************************
//_______ MANIPULATION DE L'IMAGE PAR GD
$fileToTransform = $dest_dir.$dest_name;
// On ouvre l'image en fonction de son extention
switch($tabPropertyFile['ext']){
case 'jpg':
case 'jpeg':
$workImage = imagecreatefromjpeg($fileToTransform);
break;
case 'gif':
$workImage = imagecreatefromgif($fileToTransform);
break;
case 'png':
$workImage = imagecreatefrompng($fileToTransform);
break;
case 'bmp':
$workImage = imagecreatefromwbmp($fileToTransform);
break;
default:
$workImage = imagecreatefromjpeg($fileToTransform);
break;
}
// Notre image est maintenant dans la variable $workImage
// On récupère les dimension de notre image
list($width, $height) = getimagesize($fileToTransform);
// Ratio de réduction d'image. On l'initialise à 1
$ratio = 1;
$widthResized = $width;
$heightResized = $height;
// On calcule quel ratio doit être appliqué à l'image pour que nous l'ayons dans les dimensions voulues
while($widthResized > 200 and $heightResized > 150 ){
$ratio -= 0.05;
$widthResized = $ratio * $width;
$heightResized = $ratio * $height;
}
// Une fois que l'on a les bonnes dimensions
// On créé la nouvelle image avec les bonnes dimensions
$imgDestination = imagecreatetruecolor($widthResized, $heightResized);
// On copie l'image miniature à partir de la photo envoyée
$success = imagecopyresampled($imgDestination, $workImage, 0, 0, 0, 0, $widthResized, $heightResized, $width, $height);
if(!$success){echo '<br/> copie image KO';
}else{echo '<br/> copie image OK';}
// On la sauvegarde sur le serveur
$folder = 'dest';
switch(strtolower($tabPropertyFile['ext'])){
case 'jpg':
case 'jpeg':
$workImage = imagejpeg($imgDestination, $folder, 85);
break;
case 'gif':
$workImage = imagegif($imgDestination, $folder, 85);
break;
case 'png':
$workImage = imagepng($imgDestination, $folder, 85);
break;
case 'bmp':
$workImage = imagewbmp($imgDestination, $folder, 85);
break;
default:
$workImage = imagejpeg($imgDestination, $folder, 85);
break;
}
// On libère la mémoire
imagedestroy($imgDestination);
imagedestroy($workImage); |
Partager