2013-09-26 3 views
2

Я обрабатываю несколько слоев, чтобы получить последнее изображение. На одном из изображений есть лицо, а другое - фон с прозрачным градиентом вокруг лица, так что реальный фон скрыт. В iOS6 он работает отлично, но он создает странный эффект с прозрачным градиентом в iOS7.CALayer renderInContext iOS7

Код:

CGRect rect = [[UIScreen mainScreen] bounds]; 
UIGraphicsBeginImageContext(rect.size); 

CGContextRef context = UIGraphicsGetCurrentContext(); 

[faceImageView.layer renderInContext:context]; 
[fakeBackgroundImageView.layer renderInContext:context]; 

UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

Результаты в iOS6 и iOS7:

ios6

ios7

ответ

6

Хорошо, раствор изменяя эту строку:

UIGraphicsBeginImageContext(rect.size); 

для этого один:

UIGraphicsBeginImageContextWithOptions(rect.size, TRUE, [[UIScreen mainScreen] scale]); 

Сейчас он также работает в iOS7

+0

Спасибо ... он работает для меня –