Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour,
Mon image image.png est une image avec une forme blanche sur un fond transparent.
Le code suivant ne fonctionne pas : il ne transforme pas ma forme blanche en forme rouge.
[code php]
<?php
// Chargement de l'image
$im = imagecreatefrompng('image.png');
// On récupère l'index de la couleur blanche
$index = imagecolorclosest($im, 255, 255, 255);
// On change l'index en l'index de la couleur rouge (255, 0, 0)
imagecolorset($im, $index, 255, 0, 0);
// On ressort l'image
imagepng($im, '_image.png');
// On libère la mémoire
imagedestroy($im);
?>
[/code]
Merci.
Hors ligne
Bon en fait, je change ce que je viens de dire : ça fonctionne.
MAIS, ça dépend du programme qui a fait la transparence...L'image sur laquelle je testais venais de PhotoShop. Ca ne fonctionne pas. Celle que je viens de modifier sur PhotoFiltre fonctionne. J'aimerais bien de pouvoir éviter de refaire toutes mes transparents avec PhotoFiltre...
Je suppose que c'est donc une question de format de l'image ou plus précisément de format de PNG (une histoire de PNG-24 et PNG-8 (seul le 8 serait géré par GD)) ?
Dernière modification par moijhd (19-06-2011 22:22:24)
Hors ligne
Bonjour,
Si tes images sources Photoshop n'ont pas de transparence définie, et que tu as besoin d'image avec une transparence, je te confirme que tu es bon pour retraiter toutes tes images, et ce n'est pas une question de PNG-24 / PNG-8, car tous les formats PNG gèrent la transparence à ma connaissance.
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Donc pour que Photoshop génère effectivement une transparence, il faut que j'ai un calque de background transparent et ce que je veux dessus ?
Ou encore, comment définir une transparence avec Photoshop parce que sous Photoshop, il y a bien les petits damiers gris et blancs...
Hors ligne
Bonsoir,
Les calques transparents au sein d'une image n'on rien à voir avec la transparence de l'image elle même. Le but ici n'etant pas de te faire un cours sur photoshop, considère la transparence comme une couleur particulière qui est appliquée sur une couleur de masque (la plus appropriée selon la composition colorimétrique de ton image).
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
J'apporte la solution que j'ai trouvée, vous pourrez toujours essayer de m'en expliquer la raison ou d'en trouver une autre.
J'ai d'abord remarqué que lorsque je définissais une transparence avec PhotoFiltre, le fichier de sortie avec une profondeur de 8 alors que celle de PhotoShop pouvait valoir 24 ou 32. Par la suite, j'ajoutais en PHP des images sur d'autres images avec imagecopymerge et je me retrouvais avec une dégradation de l'image en 8.
Donc, je me suis arrangé pour n'avoir que des 24.
Par la suite, lorsque j'éditais un fichier, je mettais toujours une calque de fond uni (rouge). Ensuite, je savais qu'en un point de mon image, il y avait ce fond, je récupérais alors la couleur et la déterminais comme couleur de transparence. Le problème que je me pose ici est comment choisir cette couleur (je n'avais pas de rouge donc cela m'allait bien, mais quand même je trouve que c'est assez génant).
Après, il y a des histoires d'alphablending et de savealpha ^^
++
Hors ligne
Pages :: 1