Fonction rotation d'une image

Soyez le premier à donner votre avis sur cette source.

Snippet vu 21 124 fois - Téléchargée 18 fois

Contenu du snippet

Petite fonction simple, mais très utile, permettant de pivoter une image de x degrés.

Attention: Votre libraire GD doit être activée ! (Vous pouvez vérifier cette activation grâce à la fonction gd_info(). cf. http://www.php.net/manual/fr/function.gd-info.php)

Source / Exemple :


<?php
function rotation($img,$degres)
{
if(file_exists($img))
{
$image = getimagesize($img);
$image_type = $image['2'];

// création de l'image selon son extension (type) :
if($image_type == "1") $source = imagecreatefromgif($img);
if($image_type == "2") $source = imagecreatefromjpeg($img);
if($image_type == "3") $source = imagecreatefrompng($img);
if($image_type == "6") $source = imagecreatefromwbmp($img);

//rotation de l'image
$rotation = imagerotate($source,$degres,-1) or die("Erreur lors de la rotation de ".$file);
//Le -1 permet de remplir les zones vides avec du transparent

// sauvegarde de l'image (selon son type :
if($image_type == "1") imagegif($rotation,$img);
if($image_type == "2") imagejpeg($rotation,$img);
if($image_type == "3") imagepng($rotation,$img);
if($image_type == "6") imagewbmp($rotation,$img);
}
}

//exemple d'utilisation :

rotation('ma_photo12.jpg','180');

// : tournera ma_photo12.jpg à 180°
//ATTENTION: si l'image n'est pas dans le même dossier que le
//fichier php, il faut le spécifié. Si ma_photo12.jpg était dans un
//dossier photo, par exemple, il aurait fallu écrire:

rotation('photo/ma_photo12.jpg','180');
?>

A voir également

Ajouter un commentaire

Commentaires

Messages postés
356
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
26 juin 2012
1
Salut, en effet ca remonte cette source!
Malheureusement avec cette méthode, l'image est modifiée et la fonction ne laisse pas de trace de son passage.
Le seul moyen est donc d'enregistrer le fait que l'image ait deja été pivotée à un autre endroit. Si tu possèdes une base de données, tu peux simplement enregistrer le nom de ta photo dans une table ce qui signifierait qu elle ait deja été pivoter et apres tester si le nom de ton fichier se trouve dans ta base de données.
Si tu ne possèdes pas de base de données, il y a toujours la possibilité d'enregistrer les informations dans un fichier texte a part.
Bonne soirée,
FF
Messages postés
1
Date d'inscription
jeudi 27 octobre 2005
Statut
Membre
Dernière intervention
25 novembre 2009

Bonjour,

désolé de réveiller cette fonction d'outre tombe, mais mon ami google m'y a conduit après une recherche.

A chaque rafraichissement de la page, la fonction ajoute l'angle indiqué ...

Dans mon cas j'essaye d'appliquer un watermark à une photo.

Donc en plein milieu de la photo je colle un gros "vendu" en rouge vif selon un angle de 45°.

Sauf qu'à chaque rafraichissement de la page la fonction fait un +45, +45, +45 ... etc ...

Savez vous si il est possible de tester si la rotation a déjà eu lieu.

test de rotation :
Si oui je ne tourne pas plus ou je tourne de 0
si non j'applique l'angle indiqué

Merci pour vos idées de modification.
Messages postés
104
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
8 décembre 2007

Si on s'amuse à faire quelques rotations, on voit très rapidement une très forte perte de qualité de l'image.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.