Применение градиента к UIImage плавно
Я пытаюсь применить градиент к UIImage, используя CoreGraphic; однако результат, который я получил, не очень хорош. Я хочу создать градиент от черного к прозрачному в нижней части изображения, чтобы создать для меня контраст для размещения текста. Тем не менее, градиент, который я смог, не очень хорошо сочетается с изображением;вы можете ясно увидеть разделение в центре, Результат, который я ищу, похож на это приложение:http://capptivate.co/2014/02/17/yummly-3/ Как мне применить градиент для достижения этой цели? (Я должен применить это к большому количеству изображений).
Мой результат:
Вот мой код:
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
}