Fonction rotation d'une image

Soyez le premier à donner votre avis sur cette source.

Snippet vu 22 581 fois - Téléchargée 20 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
zut69 Messages postés 355 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
25 nov. 2009 à 16:57
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
cs_mac97000 Messages postés 1 Date d'inscription jeudi 27 octobre 2005 Statut Membre Dernière intervention 25 novembre 2009
25 nov. 2009 à 14:24
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.
alex1025 Messages postés 104 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 8 décembre 2007
16 nov. 2007 à 15:46
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.