Portrait et paysage

Résolu/Fermé
astuces72 Messages postés 7723 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 22 avril 2024 - Modifié par astuces72 le 10/06/2016 à 14:41
astuces72 Messages postés 7723 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 22 avril 2024 - 12 juin 2016 à 19:28
hello,

J'ai récupéré 2 bouts de code assemblés.
Il enregistre l'image ensuite la redimensionne.

<?php
if(isset($_FILES['image'])){
$errors= array();
$file_name = $_FILES['image']['name'];
$file_size = $_FILES['image']['size'];
$file_tmp = $_FILES['image']['tmp_name'];
$file_type = $_FILES['image']['type'];
$file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));

$expensions= array("jpeg","jpg","png");

if(in_array($file_ext,$expensions)=== false){
$errors[]="extension not allowed, please choose a JPEG or PNG file.";
}

if($file_size > 4097152) {
$errors[]='File size must be excately 2 MB';
}

if(empty($errors)==true) {
$heure=date("s");
$file_name=$heure.$file_name;


move_uploaded_file($file_tmp,"images/".$file_name);



echo "Image brut bien enregistrée<br/>";
//-------------------
$img="images/".$file_name;
$chemin ="redim/";
$nom=$file_name ;

$dimension=getimagesize($img);


$image = imagecreatefromjpeg($img);

$maxSize = 800;

$sourceWidth = imagesx($image);
$sourceHeight = imagesy($image);

echo 'largeur origine: '.$sourceWidth.'<br/>' ;
echo 'hauteur origine: '.$sourceHeight.'<br/>' ;



if($sourceWidth >= $sourceHeight) // paysage
{

$newWidth = $maxSize;
$newHeight = ($maxSize*$sourceHeight)/$sourceWidth;

}
else // portrait
{
$newWidth = ($maxSize*$sourceWidth)/$sourceHeight;
$newHeight = $maxSize;
}

$miniature = imagecreatetruecolor($newWidth, $newHeight);
$largeur_source = imagesx($image);
$hauteur_source = imagesy($image);
$largeur_destination = imagesx($miniature);
$hauteur_destination = imagesy($miniature);
imagecopyresampled($miniature,$image,0,0,0,0,$largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
imagejpeg($miniature,$chemin.$nom,90);

return true;
//------------------

}
else
{
print_r($errors);
}

}
?>


<html>
<body>

<form action = "" method = "POST" enctype = "multipart/form-data">
<input type = "file" name = "image" />
<input type = "submit"/>

<ul>
<li>Sent file: <?php echo $_FILES['image']['name']; ?>
<li>File size: <?php echo $_FILES['image']['size']; ?>
<li>File type: <?php echo $_FILES['image']['type'] ?>
</ul>

</form>

</body>


il fonctionne sur des images que je créer avec toshop, une image de largeur:800 hauteur:1600 garde bien les proportions au format portrait.
Maintenant, si je prend une photo de mon smartphone, l'image réduite se retrouve au format paysage.
si je prend la même photo du smartphone, que je l'ouvre avec toshop, je ne fais rien dessus, je l'enregistre sous un autre nom, et bien là l'image est au format portrait.

Et le problème c'est que l'image visualisé dans le diaporama se retrouve en paysage et non en portrait.

Moi pas tout comprendre, et vous ?
Une solution à me proposer ?

Merci



:-)Pour un vieux de 47 ans, je peux encore en apprendre et vous en apprendre aussi :-D
A voir également:

1 réponse

astuces72 Messages postés 7723 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 22 avril 2024 1 637
12 juin 2016 à 19:28
résolut

j'ai ajouté une option pour choisir portrait ou paysage, et je fais un
-webkit-transform: rotate(Xdeg); à l'affichage


0