Bonjour à tous,
J'utilise la librairie GD pour faire de " l'assemblage photo " sous PHP. Je souahite donc créer un fond transparent de taille $width et de hauteur $height. Je souhaite ensuite coller un png possédant de la transparence (ombres).
Le fond transparent pas de problème ; j'ai tester en lui ajouter un rectangle rouge tout est bon. Quand je suis passé à l'étape collage d'un png ; cela s'est compliqué. Je perds la transparence et il passe mon fond en blanc et la transparence du png en noir.
Voici mon code :
Est ce que quelqu'un à déjà tenter la fusion de fond transparent et d'images composées de transparence ? Comment ? Ou est ce que je me plante ?
Merci à tous !
Modifié par mini-truc (03 Oct 2013 - 13:20)
      
      
    J'utilise la librairie GD pour faire de " l'assemblage photo " sous PHP. Je souahite donc créer un fond transparent de taille $width et de hauteur $height. Je souhaite ensuite coller un png possédant de la transparence (ombres).
Le fond transparent pas de problème ; j'ai tester en lui ajouter un rectangle rouge tout est bon. Quand je suis passé à l'étape collage d'un png ; cela s'est compliqué. Je perds la transparence et il passe mon fond en blanc et la transparence du png en noir.
Voici mon code :
        $width = 372;
        $height = 702;
        
        //création du gabarit
        $image = imagecreatetruecolor($width, $height);
        //transparence
        $black = imagecolorallocate($image, 0, 0, 0);
        imagecolortransparent($image, $black);
        
        //activation de l'alphablending
        imagealphablending($image, true);
        
        //création du fond
        $fond = imagecreatefrompng('../assets/uploads/fonds/'.$format->imageFond);
        
        //fusion
        imagecopymerge($image, $fond, 0, 0, 0, 0, $width, $height, 100);
        
        // On déactive l'alphablending
        imagealphablending($image, false);
        // Sauvegarde des données alpha
        imagesavealpha($image, true);
        //sauvegarde de l'image : 0 de compression
        imagepng('test.png', 0);
        //on libère la ressource
        $image = null;
Est ce que quelqu'un à déjà tenter la fusion de fond transparent et d'images composées de transparence ? Comment ? Ou est ce que je me plante ?
Merci à tous !
Modifié par mini-truc (03 Oct 2013 - 13:20)