2010-06-08 6 views
4

Je voudrais essayer d'utiliser ColorMatrix, mais je suis seulement capable de trouver des exemples qui convertissent une image en niveaux de gris. Et même alors, ils ont tendance à être présentés comme un morceau de code «nombres magiques» sans explication.Toute bonne source de documentation explicative sur ColorMatrix?

Est-ce que quelqu'un connaît un «tutoriel» sur l'utilisation de ColorMatrix? Par exemple, je serais intéressé par la conversion d'une image en niveaux de gris en une image en couleur, où blanc == transparent, et noir = une couleur unie, avec des pixels gris quelque part entre les deux. Est-ce que ColorMatrix peut faire ça?

+0

Vous ne signifie pas convertir en une image couleur, mais en convertissant en un masque alpha. – ChrisF

+0

Je suppose que je convertirais une image monochrome [blanc-> noir] en une image monochrome [transparent ->% COULEUR%]. Donc, une autre façon de voir est de voir l'image d'entrée comme un masque alpha qui est appliqué à une couleur unie. Mais la sortie n'est pas un masque alpha. – mackenir

Répondre

2

Je ne connais aucune documentation, mais ColorMatrix transforme une valeur RGBAW en une autre, de sorte que vous pouvez définir la matrice pour prendre les valeurs RVB d'entrée et les appliquer à la valeur Alpha de sortie. (Le W est seulement là pour faire fonctionner les mathématiques de la matrice).

OK, je pense la matrice suivante devrait faire ce que vous voulez:

[1.0 0.0 0.0 0.333 0.0] 
[0.0 1.0 0.0 0.333 0.0] 
[0.0 0.0 1.0 0.333 0.0] 
[0.0 0.0 0.0 0.0 0.0] 
[0.0 0.0 0.0 0.0 1.0] 

Cela laissera les valeurs RVB actuelles inchangées puis définissez l'alpha comme R/3 + G/3 + B/3, c'est-à-dire la moyenne des valeurs RVB. Changez les valeurs 1.0 le long de la diagonale à 0.0 pour supprimer complètement les valeurs RVB.

Si vous savez que l'image est un où R == échelle de gris G == B, alors vous pouvez remplacer une des 0,333 (récurrent) avec 1,0 et régler les deux autres à 0,0

+0

Merci! Je vais essayer. Je suppose que je devrais juste regarder la multiplication matricielle en général - ayant oublié les détails: - /. – mackenir

+0

@mackenir - ça fait un moment que je l'ai fait en colère, alors traite ce que j'ai posté comme point de départ! – ChrisF

Questions connexes