Pour une fois que j´ai un problème intelligent, je vais vous en faire profiter.
Mon objectif est simple : désaturer une image bitmap (l´équivalent de saturation -100 sous photoshop) c´est à dire la passer en niveau de gris.
Toutes mes couleurs ont la forme 0xRRVVBBAA (rouge, vert, bleu...et alpha mais on s´en fout)
Mes investigations m´ont permis de remarquer qu´un gris à la meme valeur en RR, VV et BB. Pour désaturer une couleur il suffirait donc d´aligner RR, VV et BB sur la plus élevée de ces valeurs. Exemple : la version insaturée de FF002E serait FFFFFF
Jusque là je crois que j´ai bon.
Là ou ça devient problématique c´est qu´en Flash je n´ai pas accès à toutes les données necessaires, j´en ai peur. Worse case scenario, je peux tout régler pixel par pixel à la main mais j´aimerais mieux reussir à traiter toute l´image d´un coup.
Les méthodes à ma disposition sont :
Modifier les 3 canaux de l´image selon la formule suivante :
nouvelle valeur canal rouge (de chaque pixel) = (ancienne valeur canal rouge * A) + B
où A (entre 0 et 1) et B (entre -255 et +255) sont deux nombres que je choisis arbitrairement. La meme formule s´applique aux canaux vert et bleu avec des valeurs différentes de A et B.
Remplacer la valeur d´un canal de chaque pixel par une autre.
Cette methode est tres proche de ce que je veux faire, ça me permet d´égaliser les 3 canaux de chaque pixel (et donc vraisemblablement avoir du gris)...sauf que je ne peux pas savoir quel canal à la valeur la plus élevée. Mon FF0E4B pourrait aussi bien devenir 0E0E0E ou encore 4B4B4B...
Voilà voilà, si quelqu´un a une idée sur la question, merci de me le faire savoir.