PHP - Enregistrement d'image redimensionné
Résolu
underscape
Messages postés
57
Date d'inscription
Statut
Membre
Dernière intervention
-
Chabanus Messages postés 978 Date d'inscription Statut Membre Dernière intervention -
Chabanus Messages postés 978 Date d'inscription Statut Membre Dernière intervention -
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)
?>
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:
- PHP - Enregistrement d'image redimensionné
- Image iso - Guide
- Enregistrement mp3 gratuit - Télécharger - Streaming audio
- Acronis true image - Télécharger - Sauvegarde
- Reduire taille image - Guide
- Légender une image - Guide
4 réponses
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
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
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
<? 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
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
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
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>