comment enregistrer les modifications d'une image

Eléphant du PHP | 170 Messages

08 avr. 2007, 09:54

Bonjour a tous,
je viens de réaliser un script qui me permet de redimensionner une image placée dans un répertoire mais je n'arrive pas à enregistrer les modifications apportées à cette meme image.
Quelle fonction permet de faire une sauvegarde de l'image modifiée en écrasant l'image d'origine ?
Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 avr. 2007, 11:21

Tu peux enregistrer le fichier sur le serveur avec les fonctions imagejpeg(), imagegif(), etc. selon le type de fichier que tu veux générer (ou remplacer) :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 170 Messages

08 avr. 2007, 11:31

voici mon code qui me permet de modifier l'affichage de mon image mais je voudrais en plus que l'image redimensionnée soit sauvegardée sous le nom d'origine soit "image1":
<?php
$source = 'image/image1.gif'; // source de l'image à vérifier
$tailleimage = getimagesize($source); //recuperation des infos de l'image
$largeur = $tailleimage[0]; //info de largeur
$hauteur = $tailleimage[1]; //info de longueur
$limitelargeur = 200; //limite largeur maxi
$limitehauteur = 150; //limite longueur maxi

 if($largeur > $limitelargeur AND $hauteur > $limitehauteur) //condition ou la largeur ou la hauteur depassent   
  {
       if($largeur > $hauteur) // si la largeur de la photo chargée est plus grande que sa hauteur
	      {
		  $hauteurfinal = ($limitelargeur * $hauteur) / $largeur;
		  $largeurfinal = $limitelargeur;
		  }  
		elseif($largeur < $hauteur) // si la largeur de la photo chargée est plus petite que sa hauteur
		  {
		  $largeurfinal = ($limitehauteur * $largeur) / $hauteur;
		  $hauteurfinal = $limitehauteur;
		  }
		else 
		  {
		  $largeurfinal = $limitelargeur;
		  $hauteurfinal = $limitehauteur;
		  }
   }
 elseif($largeur > $limitelargeur)
   {
    $hauteurfinal = ($limitelargeur * $hauteur) / $largeur;
    $largeurfinal = $limitelargeur;
    }
 elseif($hauteur > $limitehauteur)
    {
    $largeurfinal = ($limitehauteur * $largeur) / $hauteur;
    $hauteurfinal = $limitehauteur;
    }
else
    {
    $largeurfinal = $largeur;
    $hauteurfinal = $hauteur;
     }
	echo'<div id="img_b"><img src="'.$source.'" width="'.$largeurfinal.'" height="'.$hauteurfinal.'" /></div><br /><br />';
?> 

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 avr. 2007, 11:35

ok, alors on y est pas du tout là :)

Tout ce que tu fais en changeant les attributs width et height de ta balise html, c'est modifier les dimensions de l'image lors de l'affichage, ca ne modifie en rien le fichier.

Si tu veux modifier le fichier pour changer sa taille et pouvoir l'enregistrer, il te faut dans un premier temps l'ouvrir avec la fonction qui va bien imagecreate() ou imageCreateFrom*, puis modifier sa taille avec imagecopyresized() pour la copier et la redimensionner, et enfin donc les imagejpeg() ou imagegif() pour créer un nouveau fichier en lui spécifiant le chemin et le nom d'origine pour écraser le premier.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 170 Messages

08 avr. 2007, 11:49

merci pour tes conseils, je regarde à ça
bon week end