Создать UIImage из теневого вида, сохраняя при этом альфа?
У меня несколько необычная проблема. В моем приложении я слежу заUIImageView
используя базовое затенение слоя Quartz2d. Вот мой код:
imageView.layer.shadowOpacity = 1.0; // Pretty self explanatory
imageView.layer.shadowRadius = 8.0; // My softness
imageView.layer.shadowColor = [UIColor blackColor].CGColor; // Color of the shadow
imageView.layer.shadowOffset = CGSizeMake(0.0, 0.0); // Offset of the shadow
Это создает хорошее размытие за изображением. Однако я делаю некоторую анимацию с этим видом, и постоянный пересчет затенения во время переходов вызывает очень изменчивый переход. Я хотел бы создать файл UIImage или .png из представления изображений.с размытостью и ее альфа нетронутыми, Вот что я уже пробовал:
UIGraphicsBeginImageContext(CGSizeMake(320, 396));
[imageView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
Так как у меня есть тень, которая «растет за пределами» изображения, я не могу просто передать его размер вUIGraphicsBeginImageContext
функция. Я установил правильный размер, но полученное изображение не сохраняет мою альфу, вместо этого он помещает белый фон позади тени, что не будет работать для меня, потому что мой реальный фон - текстура дерева. Кроме того, представление не центрируется в результирующем файле.
Я очень хорошо сUIKit
но я настоящий нуби сQuartz
2D графика, так что если есть очевидный ответ на это, отправьте его в любом случае. :)