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 :
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);
?>
Le dégradé se fait bien.

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.