PHP - Enregistrement d'image redimensionné

Résolu/Fermé
underscape Messages postés 57 Date d'inscription samedi 6 juin 2009 Statut Membre Dernière intervention 14 août 2009 - 23 juil. 2009 à 20:46
Chabanus Messages postés 978 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 11 novembre 2011 - 31 déc. 2009 à 10:40
Bonjour,
voila j'essai de changer la taille d'une image suite a un upload.
j'arrive a l'uploader sans soucis et a changer le format du fichier.
Par exemple envoi en gif ou png etc.. et le transformé en jpg.
Mais par contre impossible de lui donner une nouvelle taille.
Enfin je pense que j'y arrive mais une chose est certaine c'est que cela n'enregistre pas la nouvelle taille, car lorsque je regarde dans le dossier d'arrvié j'ai mon image transformé mais pas redimmensionné.
Voila si quelqu'un a un début d'idée....

<?

// selection selon le format
switch ($_FILES['Imgfile']['type']) {
case "image/gif":
$Src_Img = imagecreatefromgif($UrlduDossier.$_FILES['Imgfile']['name']);
break;
case "image/png":
$Src_Img = imagecreatefrompng($UrlduDossier.$_FILES['Imgfile']['name']);
break;
case "image/jpg" || "image/jpeg":
$Src_Img = imagecreatefromjpeg($UrlduDossier.$_FILES['Imgfile']['name']);
break;
};

imagejpeg($Src_Img, $UrlduDossier.$_FILES['Imgfile']['name'], 75);

//********************************************************
// REDIMENSIONNEMENT DE L'IMAGE.

$New_Width = 200;
$New_Height = 200;

list($Old_Width, $Old_Height) = getimagesize($UrlduDossier.$_FILES['Imgfile']['name']);

$Ratio = $Old_Width/$Old_Height;

if ($New_Width/$New_Height > $Ratio) {
$New_Width = $New_Height*$Ratio;
} else {
$New_Height = $New_Width/$Ratio;
}

// Redimensionnement
$Img_True = imagecreatetruecolor($New_Width, $New_Height);
$Img_Jpg = imagecreatefromjpeg($DIR_ROOT."/".$DIR_IMGTEMP.$_FILES['Imgfile']['name']);
imagecopyresampled($Img_True, $Img_Jpg, 0, 0, 0, 0, $New_Width, $New_Height, $Old_Width, $Old_Height);

$OpenConnex = fopen($UrlduDossier.$_FILES['Imgfile']['name'],'w');
fclose($OpenConnex)

?>
A voir également:

4 réponses

underscape Messages postés 57 Date d'inscription samedi 6 juin 2009 Statut Membre Dernière intervention 14 août 2009 3
23 juil. 2009 à 23:28
Bon bah finalement j'ai trouvée
Décidément a chaque fois que je post je fini par trouvé comme une grande.

pour ceux que cela peu aider
vous garder tout jusqu'au dernier break et vous remplacer la suite par cela et la magie opère
<?

$New_Img = imagecreatetruecolor(200, 150); // On crée la miniature vide

$Old_Width = imagesx($Old_Img); // taille de l'image original
$Old_Height = imagesy($Old_Img);
$New_Width = imagesx($New_Img); // taille de la nouvelle image
$New_Height = imagesy($New_Img);

imagecopyresampled($New_Img, $Old_Img, 0, 0, 0, 0, $New_Width, $New_Height, $Old_Width, $Old_Height);

imagejpeg($New_Img, $UrldemonDossier.$NouveauNomdeMonImage);

?>
cia
3
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
24 juil. 2009 à 00:05
petite correction dans ton script

<? au debut c'est pas bien.... lol !!!

habitue toi a mettre <?PHP

en tout cas si ça marche bravo d'y etre arrivée toute seule
0
underscape Messages postés 57 Date d'inscription samedi 6 juin 2009 Statut Membre Dernière intervention 14 août 2009 3
24 juil. 2009 à 00:14
ah bon faut le mettre ???
ah bah d'accord j'ai vu plein de gens faire ca alors stupidement je me suis dis bah on passe le "php et on met que <?
Entre nous cela me semblais bizarre mais je suis disciplinée
0
Chabanus Messages postés 978 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 11 novembre 2011 70
31 déc. 2009 à 10:40
Salut, j'ai essayé ton code mais cela ne fonctionne pas chez moi, cela m'affiche des dizaines d'erreurs, quelqu'un sait comment faire ? Merci

<?php

// selection selon le format
if(isset($_POST['envoi'])){
$UrlduDossier = "dossier/";
switch ($_FILES['Imgfile']['type']) {
case "image/gif":
$Src_Img = imagecreatefromgif($UrlduDossier.$_FILES['Imgfile']['name']);
break;
case "image/png":
$Src_Img = imagecreatefrompng($UrlduDossier.$_FILES['Imgfile']['name']);
break;
case "image/jpg" || "image/jpeg":
$Src_Img = imagecreatefromjpeg($UrlduDossier.$_FILES['Imgfile']['name']);
break;
};

$New_Img = imagecreatetruecolor(200, 150); // On crée la miniature vide

$Old_Width = imagesx($Old_Img); // taille de l'image original
$Old_Height = imagesy($Old_Img);
$New_Width = imagesx($New_Img); // taille de la nouvelle image
$New_Height = imagesy($New_Img);

imagecopyresampled($New_Img, $Old_Img, 0, 0, 0, 0, $New_Width, $New_Height, $Old_Width, $Old_Height);

imagejpeg($New_Img, $UrldemonDossier.$NouveauNomdeMonImage);
}
?> 
<form method="post" enctype="multipart/form-data">

<input type="file" name="Imgfile">
<input type="submit" name="envoi" value="ok">
</form>

0