Проблема, вероятно, в следующей строке:
let image = img.cgImage?.cropping(to: crop)
То есть не как обрезать UIImage, потому что UIImage, наряду со всем остальным, нарисованным на вашем экране, имеет scale , и он имеет ориентацию , а CGImage - нет.
Чтобы обрезать UIImage, нарисуйте его в правильно масштабированном контексте графического изображения, чтобы получить желаемую областьизображения попадает в контекст и извлекает полученное изображение.