Do obrotu, trzeba zastosować
CGAffineTransform transform = CGAffineTransformTranslate(self.imageView.transform,deltaX,deltaY);
transform = CGAffineTransformRotate(transform, recognizer.rotation);
transform = CGAffineTransformTranslate(transform, -deltaX, -deltaY);
self.imageView.transform = transform;
ucięcie, wystarczy zmienić ramkę swojego ImageView
Aby przekształcić lokalną coordinates'image, wystarczy użyć:
// 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];
Jeśli planujesz zintegrować edytor obrazów z aplikacją, możesz rozważyć użycie strony trzeciej, takiej jak: https://github.com/heitorfr/ios-image-editor
Właśnie to przetestowałem i zadziałało! Powinienem zauważyć, że obrót afiniczny obraca obraz dookoła niego w lewym dolnym rogu (punkt zerowy układu współrzędnych CIImage), a nie dookoła jego środka, więc powinieneś zachować ostrożność przy współrzędnych przy stosowaniu uprawy. –
Czy możesz opublikować kod, w jaki sposób dokonujesz obliczeń dla someRect? Obracam obraz, ale nie wiem, jak przycinać prostokąt, który chcę, ponieważ po obrocie nie jest on w tym samym miejscu co poprzednio. – NFilip
Nie działa dla mnie. "imageByCroppingToRect" daje mi pusty obraz po zastosowaniu "CGAffineTransform t = CGAffineTransformMakeRotation (degrees);" –