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
|
<?php
// Fichier et degrés de rotation
function autoImageRotate($filename)
{
//$filename = 'http://thor/gooBox/photo/IMG_9161.JPG';
$degrees = 0;
$largeurCadrePhoto = 800;
//récupération des métas data du JPEG
$exif_ifd0 = exif_read_data($filename);
$size = getimagesize($filename);
if (@array_key_exists('Orientation', $exif_ifd0)) {
if($exif_ifd0['Orientation'] == '8')
$degrees = 90;
if($exif_ifd0['Orientation'] == '3')
$degrees = 180;
if($exif_ifd0['Orientation'] == '6')
$degrees = 270;
}
header('Accept-Ranges:bytes');
header("Content-Type: {$size['mime']}");
header("Content-Length: " . filesize($filename));
// Chargement
$source = imagecreatefromjpeg($filename);
//calcul de la réduction/agrandissement de l'image :
if($largeurCadrePhoto != $size[0])
{
$b = $largeurCadrePhoto/$size[0];
$NouvelleHauteur = ($size[1] * $b);
$NouvelleImage = imagecreatetruecolor($largeurCadrePhoto , $NouvelleHauteur) or die ("Erreur");
imagecopyresampled($NouvelleImage , $source, 0, 0, 0, 0, $largeurCadrePhoto, $NouvelleHauteur, $size[0],$size[1]);
imagedestroy($source);
$source = $NouvelleImage;
}
//rotation & liberation de l'image tournée
if ($degrees > 0) {
$rotate = imagerotate($source, $degrees, 0);
imagejpeg($rotate);
imagedestroy($rotate);
}
else
imagejpeg($source, null, 90);
//libération de l'image
imagedestroy($source);
}
if(isset($_REQUEST['file'])){$file = $_REQUEST['file'];}else{$file = 'none';}
autoImageRotate($file);
?> |
Partager