Modifier la couleur d'un objet

Bonjour, je suis confronté a un problème. Je voudrais savoir comment faire pour modifier la couleur d'un objet , par un slider notamment . J'ai pensé a des filtres CoreImage de saturation ou de vibrance ,mais je pense pas que le resultat sera a la hauteur de mes attentes . Je voudrais donc savoir si il y avait une autre solution que les filtres pour ce problème. Imaginons une photo de voiture , sur laquelle'on pourrait modifier sa couleur par le slider .

Merci de vos reponses .

Réponses

  • Essaye le filtre CIColorMatrix qui permet de multiplier chaque pixel d'une image avec une couleur donnée.
  • AliGatorAliGator Membre, Modérateur
    Si tu ne veux pas passer par CoreImage, passe par CoreGraphics.

    Entre les masques et les compositions (Blending), tu as tout le nécessaire dans la doc Apple (Quartz 2D Programming Guide).



    Par exemple tu peux créer un masque (par détection de couleur, voir le paragraphe "Masking an Image with Color", ou par un masque en niveaux de gris) pour définir la zone sur laquelle tu veux travailler (pour ne modifier que la couleur de ta voiture, et pas celle de l'environnement autour), ensuite faire un blending "Hue Blending Mode" en utilisant cette image masquée (= juste la voiture sans l'environnement) comme background et une image unie en source image, de sorte que la teinte (Hue en anglais) de ton image source unie soit appliquée à  ton image de fond (ta voiture).

    Reste plus qu'à  redessiner cette image de voiture dont tu as modifié la teinte sur l'image d'origine (cette fois en Normal Blend Mode) pour replacer la voiture dans son environnement (le reste de l'image que tu n'as pas "masqué" genre les arbres autour etc, pour éviter de modifier la teinte de cette zone "non-voiture")
  • L'opérateur de blending Multiply Blend Mode permet de faire la même chose que le filtre CIColorMatrix sans passer par CoreImage. Voici une copie d'écran d'un exemple où la même image est affichée plusieurs fois avec différentes coloration aléatoire :
Connectez-vous ou Inscrivez-vous pour répondre.