7
votes

Convertir des pixels non transparents en noir

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>


0 commentaires

3 Réponses :


1
votes

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


0 commentaires

2
votes

Eh bien, vous pouvez le faire avec GD et une paire de boucles: xxx pré>

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);
    }
}


0 commentaires

26
votes

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: xxx

Je vais briser ce que ça va aussi.

  1. -Alpha extrait - Prenez le masque alpha de l'image. Les pixels complètement transparents seront noirs, complètement opaques blancs.
  2. -Hreshold 0 - Augmentez tous les canaux à leur valeur maximale si elles sont supérieures à zéro. Dans ce cas, il sera faire tous les blancs de pixels sauf ceux qui sont complètement noirs .
  3. -Negate - invert l'image . Maintenant, nos Noirs sont blancs et nos Blancs sont noirs.
  4. -Transparent blanc - définit des pixels blancs pour être transparent . Cela peut être exclu si vous préférez que vos pixels à l'origine transparents soient blancs.

    avant

    image png avec canal alpha

    après

    image précédente après avoir exécuté la commande convertie


0 commentaires