Bonjour, voici le script que j'utilise pour uploader mes images.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
    private function createImage()
    {
        if ($this->fileImage == NULL OR $this->fileImage['error'] != 0) {
            $this->error = "il a une erreur ou le fichier n'est pas envoyé";
            return false;
        }
 
        if ($this->fileImage['size'] >= 2097152) {
            $this->error = "fichier tro gros";
            return false;
        }
 
        // Testons si l'extension est autorisée
        $infosfichier = pathinfo($this->fileImage['name']);
        $extension_upload = $infosfichier['extension'];
        $extension_upload = strtolower($extension_upload); //converti en minuscule
        $extensions_autorisees = array('png', 'jpg', 'jpeg', 'gif');
        if (!in_array($extension_upload, $extensions_autorisees)) {
            $this->error = "l'extension n'est pas autorisé";
            return false;
        }
 
        $TailleImageChoisie = getimagesize($this->fileImage['tmp_name']);
        $NouvelleLargeur = 32; //Largeur choisie à 32px
        $NouvelleHauteur = 32;
 
        switch ($extension_upload) {
            case jpg:
                $ImageChoisie = imagecreatefromjpeg($this->fileImage['tmp_name']);
            break;
            case png:
                $ImageChoisie = imagecreatefrompng($this->fileImage['tmp_name']);
            break;
            case gif:
                $ImageChoisie = imagecreatefromgif($this->fileImage['tmp_name']);
            break;
        }
        $NouvelleImage = imagecreatetruecolor($NouvelleLargeur , $NouvelleHauteur) or die ("Erreur");
 
        imagecopyresampled($NouvelleImage , $ImageChoisie  , 0,0, 0,0, $NouvelleLargeur, $NouvelleHauteur, $TailleImageChoisie[0],$TailleImageChoisie[1]);
        imagedestroy($ImageChoisie);
        $NomImageChoisie = explode('.', $ImageNews);
        $NomImageExploitable = time();
 
        switch ($extension_upload) {
            case jpg:
                imagejpeg($NouvelleImage , 'imagesnews/'.$NomImageExploitable.'.jpg', 100);
            break;
            case png:
                imagepng($NouvelleImage , 'imagesnews/'.$NomImageExploitable.'.png');
            break;
            case gif:
                imagegif($NouvelleImage , 'imagesnews/'.$NomImageExploitable.'.gif', 100);
            break;
        }
        $LienImageNews = 'imagesnews/'.$NomImageExploitable.'.'.$ExtensionPresumee;
 
        return true;
    }
Il marche bien. Le seul problème est que le fond des images transparentes se transforme en noire, comment faire pour qu'il soit blanc, ou alors qu'il reste transparent.

Merci d'avance