Collage images transparentes avec librairie GD
chamagne
-
chamagne Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
chamagne Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Ca fait des jours que je coince et en appelle à votre sagacité.
J'essaie d'accoler 2 images transparente (png), de même hauteur, alignées à la base.
C'est OK et vérifié jusqu'à l'utilisation de GD.
Mon code que j'ai bien commenté pour compréhension :
Merci de votre aide
Ca fait des jours que je coince et en appelle à votre sagacité.
J'essaie d'accoler 2 images transparente (png), de même hauteur, alignées à la base.
C'est OK et vérifié jusqu'à l'utilisation de GD.
Mon code que j'ai bien commenté pour compréhension :
<?php // Images des carateres de la police toutes transparentes et de même hauteur // Toutes images dans le répertoire courant - Image résultante dans répertoire temporaire function merge($data, $interval) { // INITIALISATIONS $result = "/temp/".$data.".png"; $images = array(); $letters = array(); $width = array(); $x_init = array(); $width_result = 0; // DECOUPAGE DE L'ENTREE EN CARACTERES IMAGES UNIQUES $nb = strlen($data); for ($i=0; $i<$nb; $i++) $letters[$i] = substr($data, $i, 1).'.png'; // CALCUL POSITION ET LARGEUR DE CHAQUE IMAGE ET DES DIMENSIONS DE L'IMAGE FINALE $i = 0; foreach($letters as $value) { $x_init[$i] = array_sum($width) + ($i * $interval); $size = getimagesize($value); array_push($width, $size[0]); $i++; } $height = $size[1]; // toutes les images sont de même hauteur $width_result = array_sum($width) + ($nb * $interval); // CREATION IMAGE FINALE VIDE ET TRANSPARENTE $empty = imagecreatetruecolor($width_result, $height); imagealphablending($empty, false); imagesavealpha($empty, true); $trans_colour = imagecolorallocatealpha($empty, 0, 0, 0, 127); imagefill($empty, 0, 0, $trans_colour); // POUR CHAQUE LETTRE DU MOT/PHRASE for ($i=0; $i<$nb; $i++) { // Création $images[$i] = imagecreatefrompng($letters[$i]); // Copie dans l'image finale imagecopy($empty, $images[$i], $x_init[$i], 0, 0, 0, $width[$i], $height); } // CREATION IMAGE FINALE imagepng($empty, $result); // NETTOYAGE imagedestroy($empty); for ($i=0; $i<$nb; $i++) imagedestroy($images[$i]); } // LANCEMENT COLLAGE ET AFFICHAGE IMAGE RESULTANTE $data = "exemple"; // texte à traduire en image avec la police graphique $interval = 5; // espace à droite de chaque caractère du texte merge($data, $interval); echo '<img src="".$data.'.png">'; ?>
Merci de votre aide
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Collage images transparentes avec librairie GD
- Des images - Guide
- Pic collage gratuit - Télécharger - Photo & Graphisme
- Images enregistrées ✓ - Forum Bluetooth
- Superposer deux images transparence ✓ - Forum Graphisme
- Voir ses images enregistrés - Forum Blender
3 réponses
Bon je sais pas si il y a une erreur au niveau de la lib GD mais ton echo n'est pas bon:
Essaye ça
echo '<img src="".$data.'.png">';
Essaye ça
echo '<img src="'.$data.'.png">';
Bonjour
Curieux ça, je n'ai pas cette erreur chez moi et ai fait un copier-coller;
De toutes les façons, je pense que php n'aurait pas apprécié et m'aurait envoyé balader.
@+
Curieux ça, je n'ai pas cette erreur chez moi et ai fait un copier-coller;
De toutes les façons, je pense que php n'aurait pas apprécié et m'aurait envoyé balader.
@+
C'est réglé !
1ère modif : remplacer /temp par temp
2ème modif : changer
par
Mise en oeuvre sur http://www.geologues-prospecteurs.fr/alphabets/cristaux/
(reste un petit pb avec le signe euro à ne pas utiliser)
1ère modif : remplacer /temp par temp
2ème modif : changer
imagefill($empty, 0, 0, $trans_colour);
par
imagefilledrectangle($empty, 0, 0, $width_result, $height, $trans_colour);
imagealphablending($empty, true);
Mise en oeuvre sur http://www.geologues-prospecteurs.fr/alphabets/cristaux/
(reste un petit pb avec le signe euro à ne pas utiliser)