Sto provando ad applicare il gradiente a UIImage usando CoreGraphic; tuttavia, il risultato che ho ottenuto non è molto bello. Voglio creare una sfumatura da nero a trasparente nella parte inferiore dell'immagine per creare un contrasto per me per posizionare del testo. Tuttavia, il gradiente che ero in grado non si sposa bene con l'immagine; è possibile vedere chiaramente la separazione al centro. Il risultato che sto cercando è come questa applicazione: http://capptivate.co/2014/02/17/yummly-3/ Come devo applicare il gradiente per raggiungere questo obiettivo? (Devo applicare questo a grandi quantità di immagini).Applicazione del gradiente per UIImage Smoothly
Il mio risultato:
Ecco il mio codice:
func imageWithGradient(img:UIImage!) -> UIImage{
UIGraphicsBeginImageContext(img.size)
var context = UIGraphicsGetCurrentContext()
img.drawAtPoint(CGPointMake(0, 0))
let colorSpace = CGColorSpaceCreateDeviceRGB()
let locations:[CGFloat] = [0.50, 1.0]
//1 = opaque
//0 = transparent
let bottom = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5).CGColor
let top = UIColor(red: 0, green: 0, blue: 0, alpha: 0).CGColor
let gradient = CGGradientCreateWithColors(colorSpace,
[top, bottom], locations)
let startPoint = CGPointMake(img.size.width/2, 0)
let endPoint = CGPointMake(img.size.width/2, img.size.height)
CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
Prova modificando Y di startPoint e endPoint fuori limite immagine formato in modo gradiente sarà più alto e la differenza di colore sarà meno evidente. Ad esempio, imposta startPoint Y su '-img.size.height/4' e endPoint' img.size.height * 1.25'. Se il colore alla fine dello schermo appare troppo trasparente, aumenta leggermente anche l'alfa di colore inferiore per un po 'di tempo. –
@zellb L'ho provato e la linea nel mezzo è ancora abbastanza visibile. A differenza dell'app nel link che ho mostrato, che è molto liscia. Hai idea di cosa sia l'applicazione per applicare il filtro? O è meglio semplicemente creare un filtro in Photoshop e applicarlo su un'altra immagine. – harinsa