Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > GD
GD Forum d'entraide pour l'extension GD permettant de manipuler des images en PHP. Avant de poster -> tutoriels GD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/12/2010, 14h28   #1
Membre actif
 
Avatar de el_pedro
 
Homme Pierre PLAZANET
Inscription : août 2008
Messages : 199
Détails du profil
Informations personnelles :
Nom : Homme Pierre PLAZANET
Âge : 25
Localisation : France

Informations forums :
Inscription : août 2008
Messages : 199
Points : 194
Points : 194
Par défaut Transparence sous GD

Salut à tous.

Voila, j'ai développé une petite librairie de traitement d'image en PHP... et elle marche nickel a un détail prêt : la transparence lors de la superposition d'image.

Donc voila en détail.

J'ai un objet de type PHPaint (ma librairie) contenant un unique paramètre $img contenant l'image (accessible via GetStream).

J'ai une méthode GetTransparent qui renvoi mon image avec le blanc en transparent (marche nickel quand l'enregistre l'image ensuite).

Code :
1
2
3
4
5
6
7
public function GetTransparent(){
	$res = imagecreatetruecolor($this->GetX(), $this->GetY());
	$transparent = imagecolorallocate($res, 255, 255, 255);
	imagecopymerge ( $res, $this->GetStream(), 0, 0, 0, 0, $this->GetX(), $this->GetY(), 100 );
	imagecolortransparent ($res, $transparent);
	return (new PHPaint($res));
}
J'ai une méthode MegueMiddle qui prend une image en paramètre, qui récupère son équivalent avec fond transparent et l'intègre ai milieu de l'image courante :

Code :
1
2
3
4
5
6
7
8
public function MergeMiddle(PHPaint $imgFront, $opacite, $ratio){
	$imgFront = $imgFront->ResizeIn($this->GetX()/$ratio, $this->GetY()/$ratio);
	$x = ($this->GetX() - $imgFront->GetX())/2;
	$y = ($this->GetY() - $imgFront->GetY())/2;
	$res = $this->GetStream();
	imagecopymerge ($res, $imgFront->GetStream(), $x, $y, 0, 0, $imgFront->GetX(), $imgFront->GetY(), $opacite);
	return (new PHPaint($res));
}
Mais voila, en théorie, ça devrai marché nickel, en pratique, mon fond transparent devient noir au milieu de mon image courante.

Est ce que quelqu'un a déjà eu cette problématique ?

Merci d'avance.
el_pedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h47.


 
 
 
 
Partenaires

Hébergement Web