Bonjour !
Nous vous en faites pas. J'ai déjà poser la question à Google. Evidemment je tombe sur la docu de PHP.net et je n'y comprend rien. Apparement c'est avec le paramètre quality.
Et les nombreux exemples sur internet (Forum ou autre) sont bien trop complexes et souvent il n'y même pas la notion d'upload, c'est juste pour la compression.
C'est simple, j'ai deja tout mon système en place. Lorsque l'utilisateur change l'image (de la BDD) la nouvelle image est uploader correctement, on vérifie avec les conditions etc.. Voici ce morceau de code :
// SI IL Y A UNE IMAGE
if(!empty($_FILES['img']['name'])){
// ON PREPARE LES PARAMETRES D'UPLOAD
$img = $_FILES['img'];
$ext = strtolower(substr($img['name'],-3));
$ext_accept = "jpg";
// SI CEST UN IMG JPG ET QUEL A LES BON RATIO
if($ext == $ext_accept){
$size = getimagesize($img['tmp_name']);
$largeur = $size[0];
$hauteur = $size[1];
$ratio = round($largeur/$hauteur, 1);
if($ratio == 1.5){
// SI Il Y A PAS DE ID C'EST QUE C'EST UN AJOUT D'IMAGE
if(empty($_POST['id'])){
// ALORS ON PARAMETRE LE NOM AVEC LE PROCHAIN AUTOINCREMENT
$resultat = $pdo->query("SELECT auto_increment FROM information_schema.tables WHERE table_schema = 'bosco' AND table_name='t_gallerie'");
$donnee = $resultat->fetch();
$id = $donnee['auto_increment'];
$img_nom = 'gallerie'.$id.'.'.$ext;
move_uploaded_file($img['tmp_name'],"../img/gallerie/".$img_nom);
// ET DONC ON AJOUTE LE TITRE ET L'IMAGE A LA BDD
try{
$pdo->prepare('INSERT t_gallerie SET nom = ?, img = ?')->execute([$titre, $img_nom]);
}catch(Exception $e){
echo 'Erreur : ';
echo $e->getMessage();
die();
}
$_SESSION['flash']['info'] = "La nouvelle image a bien été ajouté";
}
// SINON C'EST QUE C'EST UNE MODIF D'UNE IMAGE EXISTENTE
else{
Ce code fonctionne. Je souhaite juste ajouter la fonction de compression et avant l'upload si possible. Je m'explique, les images qui seront généralement uploader par l'utilisateur auront certainement une taille de 3MO en moyenne et j'aimerais qu'elle descende à 1MO maximum.
Alors je sais pas si c'est bien avec le paramètre quality et j'ai crue comprendre qu'il faut d'abord uploader l'image et après on peu la compresser, non ? Enfin je sais pas. Pas tout compris. Si possible je souhaite faire la compression en même temps que l'upload.
Je vous remercie deja pour votre aide ! J'en ai vraiment besoin :)
Et croyez moi j'ai déjà fait plusieurs recherches et plusieurs tests, donc inutile de me renvoyer sur la doc de PHP, ce sera le même problème !