Je cherche un moyen de convertir une image de sorte que tous les pixels non transparents (ceux qui ont alpha! = 1) dans des pixels noirs et transparents intacts (ou convertis en blanc). Le plus proche que j'ai eu était avec la commande ci-dessous ImageMagick:
convert <img> -colorspace Gray <out>
3 Réponses :
Je ne sais pas si cela vous aidera (c.-à-d. si les méthodes présentées laisseront les pixels transparents seuls) mais consultez les réponses à cette question: PHP / ImageMagic Obtenez l'ombre" Ombre "d'une image p>
Eh bien, vous pouvez le faire avec GD et une paire de boucles: ou, vous pouvez remplacer les couleurs (cela peut ou non fonctionner): P> $img = imagecreatefromstring(file_get_contents($imgFile));
$maxcolors = imagecolorstotal($img);
for ($i = 1; $i <= $maxcolors; $i++) {
$color = imagecolorforindex($i);
if ($color['alpha'] == 1) {
imagecolorset($img, $i, 0, 0, 0);
} else {
imagecolorset($img, $i, 255, 255, 255);
}
}
Je sais que cette question est vieille, mais maintenant je suis tombé dessus, je pourrais aussi y répondre.
La commande ImageMagick que vous voulez, c'est: p> Je vais briser ce que ça va aussi. P>
-Alpha extrait code> - Prenez le masque alpha fort> de l'image. Les pixels complètement transparents seront noirs, complètement opaques blancs. Li>
-Hreshold 0 code> - Augmentez tous les canaux à leur valeur maximale si elles sont supérieures à zéro. Dans ce cas, il sera
-Negate code> - invert l'image forte>. Maintenant, nos Noirs sont blancs et nos Blancs sont noirs. Li>
-Transparent blanc code> - définit des pixels blancs pour être transparent fort>. Cela peut être exclu si vous préférez que vos pixels à l'origine transparents soient blancs. LI>
ol>
avant h1>
p>
après h1>
p> p>