Итак, у меня есть холст (UIView) и UIImageView, холст действует как маска над imageview
Я использую UIGestureRecognizers для масштабирования и поворота UIImageView, который находится под холстом.
Я хочу преобразовать конечное изображение (показать в холсте в UIImage, одно решение - преобразовать холст в изображение, как показано ниже
UIGraphicsBeginImageContext(self.canvas.bounds.size);
[self.canvas.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *newCombinedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
теперь это прекрасно работает, но проблема с этим решением заключается в том, что изображение обрезается до размеров холста, поэтому разрешение очень низкое.
другой вариант, который я изучил, заключался в том, чтобы использовать некоторые пользовательские категории UIImage для поворота и масштабирования.
[[[self.photoImage image] imageRotatedByDegrees:rotaton_angle]
imageAtRect:CGRectMake(x,y width,height)]
Мне нужно предоставить угол поворота (угол поворота, предоставляемый делегатом UIGesture, не находится в градусах или радиантах, тогда есть x, y, width, height, я предполагаю, что эти потребности должны быть рассчитаны на основе некоторого масштаба (я делаю получить значение масштаба от делегата UIGesture, но они не кажутся правильными для этой функции)
здесь есть ряд решений, которые помогут вам обрезать и получить изображение с прямым. но в моем случае прямоугольник не совпадает с масштабом, так как изображение также включает поворот.
любая помощь будет оценена.