Bonjour à tous,
je cherche à faire l'algo suivant en php :
- on extrait un morceau d'une image
- on en fait un dégradé du haut vers le bas en augmentant la transparence
C'est à dire que l'image est complètement visible en haut, puis disparait progressivement quand on descend...
Le fond de l'image étant transparent (on créé un png).
Voici mon script :
Le dégradé se fait bien.
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 <?php // La source correspond à l'image dont on va extraire un morceau $source = imagecreatefromjpeg("toto.jpg"); //on ouvre l'image source // Dimension de l'image que l'on va extraire $hauteur=20; $largeur=500; header("Content-type: image/png"); //on envoie les infos au navigateur //on créé une image truecolor de largeurxhauteur pixels $destination = imagecreatetruecolor($largeur,$hauteur); imagecolorallocate($destination, 0,0,0); imagecolortransparent($destination, $transparent_color); // On extrait et on fait le dégradé : plusieurs lignes horizontales // Que l'on extrait puis qu'on rassemble, en les rendant de plus en plus transparentes for ($cpt=0; $cpt<$hauteur; $cpt++) imagecopymerge($destination,$source, 0, $cpt, 0,$cpt, $largeur, 1,100-$cpt*round(100/$hauteur)); imagepng($destination); imagedestroy($destination, $source); ?>
Seulement je n'arrive pas à rendre le fond transparent. Celui-ci reste noir et du coup ça fait un dégradé image vers noir.
Est-ce que quelqu'un pourrai me donner un petit coup de pouce
Merci beaucoup.
Partager