2 votes

Composition QC qui convertit les pixels noirs et blancs en deux autres couleurs

Je commence tout juste à me familiariser avec Quartz Composer et la première chose que j'aimerais créer est une composition qui pourrait éventuellement être utilisée dans une application Cocoa qui accepterait une image en noir et blanc et deux NSColor's et changerait les pixels noirs en NSColor #1 et les pixels blancs en NSColor #2.

J'ai passé du temps à jouer avec le QC, mais je n'arrive pas à comprendre comment assembler toutes les pièces du puzzle.

La seule chose que j'ai compris, c'est que je dois utiliser le modèle Image Filter et je vois qu'il y a un patch Image Pixel qui peut récupérer des pixels d'une image... mais je ne vois pas de patch pour définir un pixel. Il semble également possible que le patch Pixellate soit nécessaire... mais je ne devrais pas avoir à m'inquiéter qu'il produise une image aux dimensions infinies puisque mes images sources ne seront que des images PNG de taille fixe.

1voto

smokris Points 6412

Jetez un coup d'œil à la False Color patch - il prend une image et la recompose avec une paire de couleurs.

En effet, depuis que la False Color n'est qu'une enveloppe autour du filtre Core Image portant le même nom ( CIFalseColor ), vous pouvez le faire sans impliquer Quartz Composer du tout --- il suffit de mettre en place et d'appliquer un CIFilter à votre NSImage.

Modifiez - ou écrivez votre propre filtre Core Image, en commençant par quelque chose comme ceci :

kernel vec4 remapBasedOnRed(sampler image,__color colorForDark,__color colorForLight)
{
    return mix(colorForDark,colorForLight,sample(image, samplerCoord(image)).r);
}

...qui prend la luminosité du canal rouge de l'image d'entrée ( sample(image, samplerCoord(image)).r ), et l'utilise comme coefficient pour l'interpolation linéaire entre colorForDark y colorForLight .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X