Comment vérifier/corriger la rotation de l'image avant de charger l'image à l'aide de PHP
J'ai un issiue lors du téléchargement d'une image prise avec un iphone.
Je suis en train d'utiliser le PHP et le imgrotate fonction automatiquement décider si l'image doit être tourné à la bonne possition, avant de l'envoyer sur le serveur.
Mon code html:
<form class="form-horizontal" method="post" enctype="multipart/form-data">
<div class="form-group">
<div class="col-md-9">
<div class="input-group">
<span class="input-group-btn">
<span class="btn btn-default btn-file">
Choose img<input type="file" name="file" id="imgInp">
</span>
</span>
</div>
</div>
</div>
<button type="submit">Send</button>
</form>
Le code PHP im en utilisant:
Aussi renvoyer une erreur: Warning: imagerotate() s'attend à ce paramètre 1 pour être des ressources, chaîne de caractères donnée en.
Quelqu'un a un code du travail pour ce scénario?
<?php
$filename = $_FILES['file']['name'];
$exif = exif_read_data($_FILES['file']['tmp_name']);
if (!empty($exif['Orientation'])) {
switch ($exif['Orientation']) {
case 3:
$image = imagerotate($filename, -180, 0);
break;
case 6:
$image = imagerotate($filename, 90, 0);
break;
case 8:
$image = imagerotate($filename, -90, 0);
break;
}
}
imagejpeg($image, $filename, 90);
?>
imagerotate()
implique unimage resource
plutôt qu'un nom de fichier. Voir: php.net/manual/en/function.imagerotate.php
Vous devez vous connecter pour publier un commentaire.
Vous utilisez
imagerotate
mal. Il s'attend d'abord à des paramètres de ressources alors que vous êtes de passage le nom de fichier. Vérifier manuelEssayez ceci:
Ne pas oublier de libérer la mémoire en ajoutant deux lignes suivantes: