Redimensionner une image en php
nanard
-
nanard -
nanard -
Bonjour,
je n'arrive pas à utiliser les fonctione imagecreatefromjpeg et les autres autours qui permettent de redimensionner une image.
Quand j'envoi mon formulaire, j'aimerai que la photo choisie soit envoyé dans deux dossier "img" et "min" qui correspondent au dossier images originelles et images miniatures.
Aucun soucis elle s'envoie bien dans le dossier "img" mais la photo miniature, j'arrive pas à la redimensionner.
Voici mon code bien modeste de ce que j' ai fait, tout fonctionne sauf la copie et le redimensionnement de la photo pour le dossier "min".
<?php
session_start();
include ('config.php');
mysql_query("SET NAMES 'utf8'");
$titre = $_POST['titre'];
$auteur = $_POST['auteur'];
$annee = $_POST['annee'];
$resume = $_POST['resume'];
$photo = $_FILES['photo'];
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$photo = !empty($_FILES['photo']['name']) ? time()."_".$_FILES['photo']['name'] : '';
$extension = strrchr($_FILES['photo']['name'], '.');
$dossier = '/home/monsite/www/biblix/img/';
//On formate le nom du fichier ici...
$photo = strtr($photo,
'Àà Ã'ÃfÃ"Ã...Ã#ÈÉÃSÃ<ÃOEà ÃZà Ã'Ã"Ã"Ã*Ã-Ã(TM)ÃsÃ>Ãoeà à áâãäåçèéêëìÃîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$photo = preg_replace('/([^.a-z0-9]+)/i', '-', $photo);
move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $photo); //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
mysql_query("INSERT INTO biblix VALUES('', '$titre', '$auteur', '$annee', '$photo', '$photo')")or die(mysql_error());
mysql_close();
?>
<meta http-equiv="Refresh" content="0;URL=add.php" />
je n'arrive pas à utiliser les fonctione imagecreatefromjpeg et les autres autours qui permettent de redimensionner une image.
Quand j'envoi mon formulaire, j'aimerai que la photo choisie soit envoyé dans deux dossier "img" et "min" qui correspondent au dossier images originelles et images miniatures.
Aucun soucis elle s'envoie bien dans le dossier "img" mais la photo miniature, j'arrive pas à la redimensionner.
Voici mon code bien modeste de ce que j' ai fait, tout fonctionne sauf la copie et le redimensionnement de la photo pour le dossier "min".
<?php
session_start();
include ('config.php');
mysql_query("SET NAMES 'utf8'");
$titre = $_POST['titre'];
$auteur = $_POST['auteur'];
$annee = $_POST['annee'];
$resume = $_POST['resume'];
$photo = $_FILES['photo'];
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$photo = !empty($_FILES['photo']['name']) ? time()."_".$_FILES['photo']['name'] : '';
$extension = strrchr($_FILES['photo']['name'], '.');
$dossier = '/home/monsite/www/biblix/img/';
//On formate le nom du fichier ici...
$photo = strtr($photo,
'Àà Ã'ÃfÃ"Ã...Ã#ÈÉÃSÃ<ÃOEà ÃZà Ã'Ã"Ã"Ã*Ã-Ã(TM)ÃsÃ>Ãoeà à áâãäåçèéêëìÃîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$photo = preg_replace('/([^.a-z0-9]+)/i', '-', $photo);
move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $photo); //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
mysql_query("INSERT INTO biblix VALUES('', '$titre', '$auteur', '$annee', '$photo', '$photo')")or die(mysql_error());
mysql_close();
?>
<meta http-equiv="Refresh" content="0;URL=add.php" />
A voir également:
- Redimensionner une image en php
- Légender une image - Guide
- Image iso - Guide
- Transformer une image en icone - Guide
- Mettre une image en filigrane sur word - Guide
- Comment redimensionner une image - Guide
3 réponses
Bonjour,
Je ne vois pas de fonction imagecreatefromjpeg dans ton code ou ai je mal vu.
Sinon voici un bon tuto pour redimensionner les image
http://fr.openclassrooms.com/informatique/cours/gd-redimensionner-une-image-sans-la-deformer
Je ne vois pas de fonction imagecreatefromjpeg dans ton code ou ai je mal vu.
Sinon voici un bon tuto pour redimensionner les image
http://fr.openclassrooms.com/informatique/cours/gd-redimensionner-une-image-sans-la-deformer
Bonjour et merci d'avoir repondu. Oui, j' ai d'ailleurs suivi ce tutoriel du site du zero.
Mais je me mélange tout, j'ai donc enlevé imagecreatejpeg et totu ce qui ne fonctionnait pas de mon bout de code, bref je n'ai rien réussi.
J'ai vraiment du mal sur cette partie et si vous pouviez m'aider avec un exemple minimal ca serait sympa, pour me mettre sur la voix.
cdt
Mais je me mélange tout, j'ai donc enlevé imagecreatejpeg et totu ce qui ne fonctionnait pas de mon bout de code, bref je n'ai rien réussi.
J'ai vraiment du mal sur cette partie et si vous pouviez m'aider avec un exemple minimal ca serait sympa, pour me mettre sur la voix.
cdt
Je me suis basé sur le lien suivant, a priori ca ne fonctionne pas:
https://forums.commentcamarche.net/forum/affich-12521502-redimensionner-une-image-lors-d-un-upload
<?php
session_start();
include ('config.php');
mysql_query("SET NAMES 'utf8'");
$titre = $_POST['titre'];
$auteur = $_POST['auteur'];
$annee = $_POST['annee'];
$resume = $_POST['resume'];
$photo = $_FILES['photo'];
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$photo = !empty($_FILES['photo']['name']) ? time()."_".$_FILES['photo']['name'] : '';
$extension = strrchr($_FILES['photo']['name'], '.');
$dossier = '/home/graffx/www/biblix/img/';
//On formate le nom du fichier ici...
$photo = strtr($photo,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$photo = preg_replace('/([^.a-z0-9]+)/i', '-', $photo);
move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $photo); //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
resize_clone("/home/monsite/www/biblix/min/", .$photo.);
function resize_clone($path, $file)
{
list($width, $height, $type, $attr) = getimagesize($path.$file);
$ratio = $height / $width;
if ($height > 500 OR $width > 500)
{
if($ratio <= 1)
{
$x = 500;
$y = 500*$ratio;
}
else
{
$y = 500;
$x = 500*(1/$ratio);
}
}
else
{
if($ratio <= 1)
{
$x = $width;
$y = $width*$ratio;
}
else
{
$y = $height;
$x = $height*(1/$ratio);
}
}
$size = getimagesize($path.$file);
if ( $size)
{
if ($size['mime']=='image/jpeg' )
{
$img_big = imagecreatefromjpeg($path.$file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagejpeg($img_mini,$path."big_".$file );
}
elseif ($size['mime']=='image/png' )
{
$img_big = imagecreatefrompng($path.$file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagepng($img_mini,$path."big_".$file );
}
elseif ($size['mime']=='image/gif' )
{
$img_big = imagecreatefromgif($path.$file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagegif($img_mini,$path."big_".$file );
}
}
if($ratio <= 1)
{
$x = 90;
$y = 90*$ratio;
}
else
{
$y = 90;
$x = 90*(1/$ratio);
}
$size = getimagesize($path.$file);
if ( $size)
{
if ($size['mime']=='image/jpeg' )
{
$img_big = imagecreatefromjpeg($path.$file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagejpeg($img_mini,$path."mini_".$file );
}
elseif ($size['mime']=='image/png' )
{
$img_big = imagecreatefrompng($path.$file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagepng($img_mini,$path."mini_".$file );
}
elseif ($size['mime']=='image/gif' )
{
$img_big = imagecreatefromgif($path.$file);
$img_new = imagecreate($x, $y);
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagegif($img_mini,$path."mini_".$file );
}
}
unlink($path.$file);
}
mysql_query("INSERT INTO biblix VALUES('', '$titre', '$auteur', '$annee', '$photo', '$photo')")or die(mysql_error());
mysql_close();
?>
<meta http-equiv="Refresh" content="0;URL=add.php" />
Un conseil?
https://forums.commentcamarche.net/forum/affich-12521502-redimensionner-une-image-lors-d-un-upload
<?php
session_start();
include ('config.php');
mysql_query("SET NAMES 'utf8'");
$titre = $_POST['titre'];
$auteur = $_POST['auteur'];
$annee = $_POST['annee'];
$resume = $_POST['resume'];
$photo = $_FILES['photo'];
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$photo = !empty($_FILES['photo']['name']) ? time()."_".$_FILES['photo']['name'] : '';
$extension = strrchr($_FILES['photo']['name'], '.');
$dossier = '/home/graffx/www/biblix/img/';
//On formate le nom du fichier ici...
$photo = strtr($photo,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$photo = preg_replace('/([^.a-z0-9]+)/i', '-', $photo);
move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $photo); //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
resize_clone("/home/monsite/www/biblix/min/", .$photo.);
function resize_clone($path, $file)
{
list($width, $height, $type, $attr) = getimagesize($path.$file);
$ratio = $height / $width;
if ($height > 500 OR $width > 500)
{
if($ratio <= 1)
{
$x = 500;
$y = 500*$ratio;
}
else
{
$y = 500;
$x = 500*(1/$ratio);
}
}
else
{
if($ratio <= 1)
{
$x = $width;
$y = $width*$ratio;
}
else
{
$y = $height;
$x = $height*(1/$ratio);
}
}
$size = getimagesize($path.$file);
if ( $size)
{
if ($size['mime']=='image/jpeg' )
{
$img_big = imagecreatefromjpeg($path.$file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagejpeg($img_mini,$path."big_".$file );
}
elseif ($size['mime']=='image/png' )
{
$img_big = imagecreatefrompng($path.$file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagepng($img_mini,$path."big_".$file );
}
elseif ($size['mime']=='image/gif' )
{
$img_big = imagecreatefromgif($path.$file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagegif($img_mini,$path."big_".$file );
}
}
if($ratio <= 1)
{
$x = 90;
$y = 90*$ratio;
}
else
{
$y = 90;
$x = 90*(1/$ratio);
}
$size = getimagesize($path.$file);
if ( $size)
{
if ($size['mime']=='image/jpeg' )
{
$img_big = imagecreatefromjpeg($path.$file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagejpeg($img_mini,$path."mini_".$file );
}
elseif ($size['mime']=='image/png' )
{
$img_big = imagecreatefrompng($path.$file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagepng($img_mini,$path."mini_".$file );
}
elseif ($size['mime']=='image/gif' )
{
$img_big = imagecreatefromgif($path.$file);
$img_new = imagecreate($x, $y);
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagegif($img_mini,$path."mini_".$file );
}
}
unlink($path.$file);
}
mysql_query("INSERT INTO biblix VALUES('', '$titre', '$auteur', '$annee', '$photo', '$photo')")or die(mysql_error());
mysql_close();
?>
<meta http-equiv="Refresh" content="0;URL=add.php" />
Un conseil?