Ajout d'un watermark transparent sur gif/jpeg

  • Auteur de la discussion Auteur de la discussion 7804j
  • Date de début Date de début
WRInaute discret
Bonjour,

J'ai créé un petit script pour ajouter un watermark transparent contenant mon logo sur chacune de mes images :

Code:
$fileType = exif_imagetype($_GET['file']);
		
		$wm = imagecreatefrompng('logo.png');
		

		if($fileType == IMAGETYPE_GIF) {$wm_img = imagecreatefromgif($_GET['file']);}
		else if ($fileType == IMAGETYPE_PNG) {$wm_img = imagecreatefrompng($_GET['file']);}
		else {$wm_img = imagecreatefromjpeg($_GET['file']);}

		imagesavealpha($wm_img, true );
		imagesavealpha($wm, true );
		
		$marge_right = 10;
		$marge_bottom = 10;
		
		$wm_w = imagesx($wm);
		$wm_h = imagesy($wm);
		
		
		imagecopy($wm_img, $wm, imagesx($wm_img) - $wm_w - $marge_right, imagesy($wm_img) - $wm_h - $marge_bottom, 0, 0, $wm_w, $wm_h);
		
		header("Cache-Control: max-age=15552000, must-revalidate");
		
		if($fileType == IMAGETYPE_GIF)
		{
			header("Content-type: image/gif");
			imagegif($wm_img);
		}
		else if($fileType == IMAGETYPE_PNG)
		{
			header("Content-type: image/png");
			imagepng($wm_img);
		}
		else
		{
			header("Content-type: image/jpeg");
			imagejpeg($wm_img);
		}
		

		
		imagedestroy($wm_img);

Pour les images png, le script fonctionne parfaitement. Pour les images gif ou jpeg, en revanche, la transparence du watermark n'est pas gérée et ça affiche un gros carré noir à l'emplacement du watermark :S
Je sais que gif et jpeg ne gèrent pas la transparence, mais je ne veux justement pas de transparence sur l'image finale, mais simplement coller un watermark transparent sur un gif ou jpeg ordinaire.

Comment faire ?

Merci d'avance :D
 
WRInaute impliqué
Il est un peu tard, mais dans mes souvenirs, il faut d'abord créer cette image en png, mettre le watermark et ensuite la passer en jpeg.
 
WRInaute discret
Leonick a dit:
je verrais plutôt un imagecopymerge

Bah je sais pas, la doc officielle php fait avec imagecopy et parvient à conserver la transparence :S

As tu mis une transparence alpha sur ton logo.png ?

Oui, le logo.png a bien une transparence alpha et fonctionne très bien s'il est ouvert seul.
 
Discussions similaires
Haut