J' ai un petit souci, je me lance un peu dans l' upload et surtout les petites fonctions qui vont a coté comme copy createtruecolor et encore d' autres.
Mon projet est simple et il fonctionne sur le point technique:
1 - je choisis une image a uploader
2 - avant l' upload, je copie l' image dans le dossier "articles/miniatures"
3 - je redimensionne de sa taille originale a une taille "miniature"
4 - maintenant que c' es tcopié et redimensionné j' upload l' originale dans le dossier "articles"
Il y a un gros souci sur la qualité, je ne sais pas pourquoi , c' est super moche, et j' ai beau chercher, ca depasse maintenant mes competences. Je sais que mon code est pas beau, mais je suis debutant et bon, ca fonctionne
Que pourrai je faire pour ne pas perdre la qualité de la miniature, ou alors j' ai commis une erreur?
Merci d' avance :/
J' ai bien espacé pour que vous compreniez.
<?php
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg...<br><br> Taille de la photo maxi : 500 Ko';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
}
copy($_FILES['photo1']['tmp_name'], $dossier_m . $fichier) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
?>
<?php
$file = '../images/articles/miniatures/'.$fichier.'' ; # L'emplacement de l'image à redimensionner. L'image peut être de type jpeg, gif ou png
$x = 100;
$y = 100; # Taille en pixel de l'image redimensionnée
$size = getimagesize($file);
if ( $size) {
echo 'Image en cours de redimensionnement...
';
if ($size['mime']=='image/jpeg' ) {
$img_big = imagecreatefromjpeg($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,$file );
}
elseif ($size['mime']=='image/png' ) {
$img_big = imagecreatefrompng($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,$file );
}
elseif ($size['mime']=='image/gif' ) {
$img_big = imagecreatefromgif($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,$file );
}
echo 'Image redimensionnée !
';
}
?>
<?php
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg...<br><br> Taille de la photo maxi : 500 Ko';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
}
move_uploaded_file($_FILES['photo1']['tmp_name'], $dossier . $fichier) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
?>