Bonjour à tous. Je vous explique mon souçis.
Je développe un site pour un professionnel, et j'y ai ajouté un script pour que la personne puisse ajouter des images sur le ftp ( et sql... ).
Cependant, il m'a demandé de ne pas avoir à retoucher les images lui-même, par manque de connaissance etc... Donc, j'ai géré le redimensionnement, la qualité, etc...
Tout est opérationnel. Seul problème : je ne peut travailler QUE sur des jpg...
Et il me faut absolument trouver un moyen de convertir les bmp, png et gif en JPG, et ce en php.
Existe-t-il de telles fonctions ? Je n'ai pas trouvé... Des idées ?

Si besoin, je donne une partie de mon script pour m'aider à trouver une solution.

Je vous remercie par avance !

Cordialement,

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
		$nomFichier = $_FILES['image1']['name'];
		$extension = strstr("$nomFichier",".");
		if(($extension!=".jpg")&&($extension!=".png")&&($extension!=".bmp")&&($extension!=".gif"))
			$infoTransfert ='<b>Erreur !</b> Extension non reconnue, l\'image doit &ecirc;tre du type <b>.jpg .bmp .gif</b> ou <b>.png</b>.<br /><br /><a href="ajoutImage.php?numProjet='.$numProjet.'">Cliquez ICI</a></b> pour retourner sur la page d\'image.';
		else
		{
			include("../connexion.php");
			$requete = mysql_query("SELECT MAX(numImage) FROM image");			
			$ligne = mysql_fetch_array($requete);
			$numImage = $ligne[0]+1;					
			$decomposition = explode(".","$nomFichier");
			$nomImage = $decomposition[0];	
			$extension = $decomposition[1];
			$extension = strtolower($extension);	
			$imageDepart = $_FILES['image1']['tmp_name'];	
			$target = './imagesProjet'.$numProjet;
			$taille = getimagesize($imageDepart);
			if (!$taille[1]) { $infoTransfert = '<b>Erreur !</b>Taille non reconnue, prendre contact avec l\'administrateur.<br /><br /><a href="ajoutImage.php?numProjet='.$numProjet.'">Cliquez ICI</a></b> pour retourner sur la page d\'image.'; }
			else
			{
				if(!is_dir($target)) { mkdir('./imagesProjet'.$numProjet, 0700); }
				if(!is_dir($target."/minis")) { mkdir('./imagesProjet'.$numProjet.'/minis', 0700); }
				if(!is_dir($target."/normales")) { mkdir('./imagesProjet'.$numProjet.'/normales', 0700); }
				$nouvelleLargeurMini = 100;
				$nouvelleHauteurMini = 80;
				$nouvelleLargeurNormale = 500;
				$nouvelleHauteurNormale = 350;
				$nomImageMini = $numImage.'mini.jpg';
				$nomImageNormale = $numImage.'.jpg';
				$imageMini =imagecreatefromjpeg($imageDepart);	
				$imageNormale = imagecreatefromjpeg($imageDepart);
				$imageEnCouleursVraiesMini = imagecreatetruecolor($nouvelleLargeurMini, $nouvelleHauteurMini);
				$imageEnCouleursVraiesNormale = imagecreatetruecolor($nouvelleLargeurNormale, $nouvelleHauteurNormale);
				imagecopyresampled($imageEnCouleursVraiesMini, $imageMini, 0, 0, 0, 0, $nouvelleLargeurMini, $nouvelleHauteurMini, $taille[0], $taille[1]);
				imagecopyresampled($imageEnCouleursVraiesNormale, $imageNormale, 0, 0, 0, 0, $nouvelleLargeurNormale, $nouvelleHauteurNormale, $taille[0], $taille[1]);
				imagejpeg($imageEnCouleursVraiesMini, $target."/minis/".$nomImageMini, 80);
				imagejpeg($imageEnCouleursVraiesNormale, $target."/normales/".$nomImageNormale, 80);
				$test = "move mini ok";
				$test2 = "move normale ok";
				chmod($imageDepart, 0777);
				$requete2 = "INSERT INTO image VALUES ( '$numImage','$numImage.$extension',' ','$numProjet');";
				$resultat2 = mysql_query($requete2,$connexion);
				$ligne2 = mysql_fetch_assoc($resultat2);
			}
		}