2017-01-04 15 views
0

У меня есть UIImageView в моей цели c приложения. На этом UIImageView Я загружаю изображение, а затем снимаю его с камеры. Я применил область для обрезки UIImage. Эта область представляет собой прямоугольник на CAShapeLayer. Но моя проблема в том, что когда я получаю фрейм, содержащийся в прямоугольнике, это не то же место, где мой прямоугольник ... Я получаю неправильный регион, а затем обрезаю.Как правильно выбрать регион для обрезки UIImage?

Я использую этот код:

CAShapeLayer *_outline = [CAShapeLayer new]; 
UIImageView *vistaImagen; 
... 
UIGraphicsBeginImageContextWithOptions(_vistaImagen.frame.size, NO, 0.0); 
CGContextRef context = UIGraphicsGetCurrentContext(); 

CGContextAddPath(context, _boundingBox.accessibilityPath.CGPath); 

CGContextClip(context); 
[_vistaImagen.layer renderInContext:context]; 
UIImage *iii = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

Что может быть проблемой, если у меня есть кадр моего слоя Crop добавлено: _boundingBox.accessibilityPath.CGPath ??

Спасибо!

ответ

0

Ну, потратив несколько часов, я нашел проблему. Я создавал UIGraphicsBeginImageContextWithOptions с плохим масштаба ... мне нужно использовать масштаб 1, потому что я получаю изображение UIImage в реальном масштабе, но я шкала инициализируется 0.

UIImageView *vistaImagen; 
UIGraphicsBeginImageContextWithOptions(_vistaImagen.frame.size, NO, 1.0);