Transparence avec [GD] PHP
mcastex
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
mcastex Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
mcastex Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je travaille actuellement sur une galerie d'image, cette galerie est sur un fond un peu grisée et il faut que j'y superpose des images ( de guitares qui sont au format jpeg) avec un fond transparent, pour avoir les guitares sur le fond gris.
Pour cela j'ai donc procédé avec la librairie GD qui me permet de charger des images à partir d'une base de donnée, les redimensionner en miniatures, rendre le fond en blanc pour ensuite appliquer la fonction dans GD "imagecolortransparent($image,$couleur)"
Le code que je créer marche je vous le montre dans les grandes lignes :
//////////////////////////////////////////////////////////////////////////////////////////////////////////
$monImage= url de l'image .jpg
fonction_redimensionnement(monImage existe?)
{
..
.. redimensionnement en gardant le bon ratio
..
..
imagecopyresampled($destination, $image , 0, 0, 0, 0, $largeur_destination, $hauteur_destination,$largeur_source, $hauteur_source);
//cette dernière fonction créer la miniature de $image en la nommant $destination
} //fin de la boucle de redimensionnement
$blanc = imagecolorallocate($destination, 255, 255, 255); //met un fond blanc sur l'image
imagecolortransparent($destination, $blanc); // rend transparent le fond blanc de l'image
imagepng($destination); // affiche l'image
///////////////////////////////////////////////////////////////////////////////////////////////////////////
Voila donc le code marche mais il affiche un fond parsemé de point transparents, donc la fonction marche, elle enlève les points blancs mais les : 255,255,255 donc seulement du blanc pure, les autres points qu'ils restent ne doivent pas être pure .
J'ai essayé d'appliquer plusieurs fois la fonction imagecolortransparent sur plusieurs couleurs de blanc mais cela ne marche pas, cela applique juste la nouvelle couleur de blanc sur l'image initiale ! Donc forcement on obtient encore un fond parsemé de pixels transparents.
j'ai aussi penser à transformer tous les pixels blancs non pure de l'image en blanc pure de l'image mais je n'ai aucune idée de la manière de procéder.
Quelqu'un aurait-il une idée pour mettre tous les points blancs pure et non pures transparents ? ou une autre méthode pour avoir juste l'image de la guitare!
Merci de votre attention.
Je travaille actuellement sur une galerie d'image, cette galerie est sur un fond un peu grisée et il faut que j'y superpose des images ( de guitares qui sont au format jpeg) avec un fond transparent, pour avoir les guitares sur le fond gris.
Pour cela j'ai donc procédé avec la librairie GD qui me permet de charger des images à partir d'une base de donnée, les redimensionner en miniatures, rendre le fond en blanc pour ensuite appliquer la fonction dans GD "imagecolortransparent($image,$couleur)"
Le code que je créer marche je vous le montre dans les grandes lignes :
//////////////////////////////////////////////////////////////////////////////////////////////////////////
$monImage= url de l'image .jpg
fonction_redimensionnement(monImage existe?)
{
..
.. redimensionnement en gardant le bon ratio
..
..
imagecopyresampled($destination, $image , 0, 0, 0, 0, $largeur_destination, $hauteur_destination,$largeur_source, $hauteur_source);
//cette dernière fonction créer la miniature de $image en la nommant $destination
} //fin de la boucle de redimensionnement
$blanc = imagecolorallocate($destination, 255, 255, 255); //met un fond blanc sur l'image
imagecolortransparent($destination, $blanc); // rend transparent le fond blanc de l'image
imagepng($destination); // affiche l'image
///////////////////////////////////////////////////////////////////////////////////////////////////////////
Voila donc le code marche mais il affiche un fond parsemé de point transparents, donc la fonction marche, elle enlève les points blancs mais les : 255,255,255 donc seulement du blanc pure, les autres points qu'ils restent ne doivent pas être pure .
J'ai essayé d'appliquer plusieurs fois la fonction imagecolortransparent sur plusieurs couleurs de blanc mais cela ne marche pas, cela applique juste la nouvelle couleur de blanc sur l'image initiale ! Donc forcement on obtient encore un fond parsemé de pixels transparents.
j'ai aussi penser à transformer tous les pixels blancs non pure de l'image en blanc pure de l'image mais je n'ai aucune idée de la manière de procéder.
Quelqu'un aurait-il une idée pour mettre tous les points blancs pure et non pures transparents ? ou une autre méthode pour avoir juste l'image de la guitare!
Merci de votre attention.
A voir également:
- Transparence avec [GD] PHP
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Superposer deux images transparence ✓ - Forum Graphisme
- Gd group prélèvement - Forum Consommation & Internet
- Superposer une image en transparence Paint - Forum Graphisme