Для вращения, необходимо применить
CGAffineTransform transform = CGAffineTransformTranslate(self.imageView.transform,deltaX,deltaY);
transform = CGAffineTransformRotate(transform, recognizer.rotation);
transform = CGAffineTransformTranslate(transform, -deltaX, -deltaY);
self.imageView.transform = transform;
Для обрезки, просто измените кадр вашего ImageView
Для преобразования локального coordinates'image, просто используйте:
// converts a point in local coordinate space to window coordinates.
[self.imageView convertPoint:localPosition toView:nil];
// use this method to calculate a view's origin in window space like this:
[self.imageView convertPoint:self.imageView.frame.origin toView:nil];
Если вы планируете интегрировать редактор изображений в свое приложение, вы можете рассмотреть возможность использования третьего лица, например: https://github.com/heitorfr/ios-image-editor
Я только что протестировал его, и он сработал! Я должен отметить, что вращение Аффинца вращает изображение вокруг его нижнего левого угла (нулевая точка системы координат CIImage), а не вокруг его центра, поэтому вы должны быть осторожны с координатами при применении урожая. –
Можете ли вы опубликовать код, как вы делаете расчет для someRect? Я поворачиваю изображение, но я не могу понять, как обрезать прямоугольник я хочу, потому что после вращения он не находится в том же месте, что и раньше. – NFilip
Не работает для меня. «imageByCroppingToRect» дает мне пустое изображение после применения «CGAffineTransform t = CGAffineTransformMakeRotation (градусов)»; –