Więc mam płótno (UIView) i UIImageView, akty płótno jako maska nad ImageViewUIImageView obrazu upraw na podstawie UIView maskować
Używam UIGestureRecognizers aby powiększyć i obrócić UIImageView który jest pod płótnem.
chcę konwertować ostateczny obraz (pokaż na płótnie do UIImage jednym rozwiązaniem jest konwersja płótna na obrazie jak poniżej
UIGraphicsBeginImageContext(self.canvas.bounds.size);
[self.canvas.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *newCombinedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
teraz to działa dobrze, ale problem w tym rozwiązaniu jest obraz jest przycięty do wymiarów płótna więc rozdzielczość jest bardzo niska.
inna opcja i zbadać było korzystać z niektórych kategorii zwyczaj UIImage obracanie i skalowanie.
[[[self.photoImage image] imageRotatedByDegrees:rotaton_angle]
imageAtRect:CGRectMake(x,y width,height)]
Muszę podać kąt obrotu (kąt obrotu podany przez UIGesture Delegata nie jest w stopniach lub radianach, wtedy jest x, y, szerokość, wysokość, wyobrażam sobie, że te potrzeby muszą być obliczane na podstawie pewnej skali, (dostaję wartość skali od delegata UIGesture, ale nie wydają się być poprawne dla tej funkcji)
Istnieje tu wiele rozwiązań, które prowadzą do przycinania i obrazowania za pomocą prostokąta. ale w moim przypadku rect nie jest tą samą skalą co obraz, dotyczy to również rotacji.
każda pomoc zostanie doceniona.
Czy możesz umieścić kod, który otrzymuje obrót z aparatu do rozpoznawania gestów? Mówisz, że nie dostajesz obrotu w radianach, ale nagłówek 'UIRotationGestureRecognizer' twierdzi, że jego własność' rotation' jest podana w radianach. Powinieneś być w stanie wykonać obrót z UIRotationGestureRecognizer i użyć go w swojej metodzie 'imageRotatedByDegress: imageAtRect:'. –
@AaronGolden tak u są poprawne, jednak wartość jest dla pojedynczego ruchu, udało mi się uzyskać skumulowaną wartość, jestem w stanie zrobić rotację i powiększanie, aby dopasować się teraz. po prostu trzeba wymyślić przesuwanie i im dobrze iść. –