Comment implémenter le dégradé alpha sur une image?
Je veux mettre en œuvre alpha dégradé sur une image. De 0,5 alfa sur le dessus de l'image de 0.0 sur le fond.
Tous les conseils, tuto, le lien est le bienvenu.
source d'informationauteur Alex Terente
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
CGImageCreateWithMask
pour appliquer un masquage de l'image. Vous pouvez générer un masque assez simplement par le dessin à une échelle de gris ou alpha-seulement CGBitmapContext avecCGContextDrawLinearGradient
.Si elle est affichée comme le contenu d'une CALayer, vous pouvez appliquer un approprié calque de masque pour le parent de la couche
mask
de la propriété. Vous pouvez utiliser unCAGradientLayer
avec des couleurs appropriées pour créer ce masque.Vous pouvez dessiner l'image d'un CGBitmapContext, puis dessinez un approprié alpha dégradé sur l'aide de
kCGBlendModeDestinationIn
. Ou dessiner le gradient d'abord, et de dessiner l'image sur l'aide dekCGBlendModeSourceIn
. Dans les deux cas,CGContextDrawLinearGradient
est encore votre ami. Alors, bien sûr, l'image de la CGContext à l'aide deCGBitmapContextCreateImage
ouCGImageCreate
sur les données sous-jacentes de la mémoire tampon.Ou, bien sûr, si vous pouvez contrôler l'image d'origine et n'ont jamais besoin d'une version sans le dégradé alpha, vous pouvez simplement l'enregistrer comme une image PNG avec les valeurs alpha en premier lieu.
Vous pouvez essayer
CAGradientLayer
.Une autre option
Essayer la réponse suggérée par @Caleb dans cette précédente DONC, la question
Créer une nouvelle image, par la lecture des pixels dans l'image existante (l'obtention de leur RGBA) ligne par ligne en les ajoutant à la nouvelle image avec les mêmes valeurs RVB mais en ajustant les valeurs alpha par de la ligne de base.
Des questions qui devraient vous donner tout ce dont vous avez besoin pour cela:
Comment obtenir des données de pixel d'une UIImage (Cocoa Touch) ou CGImage (Graphiques de Base)?
Puis-je modifier les pixels de la UIImage de la propriété CGImage
J'ai trouvé quelque chose ici
il fonctionne très bien!