Comment puis-je changer la saturation d'un UIImage?
J'ai une UIImage et souhaitez maj c'est de la saturation d'environ +10%. Sont là standard de méthodes ou de fonctions qui peuvent être utilisées pour cela?
source d'informationauteur Thanks
Vous devez vous connecter pour publier un commentaire.
Il y a un CoreImage filtre pour ce.
CIColorControls
Il suffit de régler le
inputSaturation
< 1,0 à désaturer ou > 1.0 pour augmenter la saturation...par exemple. Voici une méthode que j'ai ajouté dans une catégorie sur
UIImage
à désaturer une image.De départ avec une Vue basée sur le Modèle d'Application, de créer une nouvelle sous-classe de UIView comme suit:
Maintenant dans votre point de vue du contrôleur de la méthode viewDidLoad, mettre la vue à l'écran et l'ensemble de la saturation comme ceci:
Modifier la saturation comme ceci:
Évidemment, si vous souhaitez l'utiliser en dehors d'une seule méthode, vous devez faire dv un ivar de la vue-contrôleur. Espérons que cette aide.
Ici est une mise en œuvre de Bessey du hack (mettez ce code dans un UIImage catégorie). Il n'est pas rapide et il a certainement des quarts de tons, mais ce genre de travaux.
N'importe qui ont des idées sur la façon d'améliorer les choses sans faire de conversion de VHS? Ou mieux encore, une véritable mise en œuvre pour:
Rien de si simple. La solution la plus simple est sans doute de faire un mémoire CGContext avec un format de pixel, dessiner l'image dans ce contexte, puis de lire/modifier les pixels dans le format de la mémoire tampon.
Je ne pense pas que la CG prend en charge une couleur de l'espace avec une part la saturation du canal, de sorte que vous aurez à convertir RVB à HSV ou HSL, ou de faire les calculs directement dans l'espace RVB.
Une façon de faire le calcul directement en RVB pourrait être quelque chose comme ceci:
Cela vous permettra de déplacer les canaux qui sont loin de la moyenne d'environ 10% plus loin. C'est presque comme l'augmentation de la saturation, mais ça va donner changements de teinte pour certaines couleurs.
Je viens de testé Mike Pollard'méthode et qu'il est correct.
Ici est la swift 3 version