Я пишу приложение для iPhone, которое использует AVFoundation, чтобы сделать снимок и обрезать его. Приложение похоже на считыватель QR-кода: он использует AVCaptureVideoPreviewLayer с наложением. Наложение имеет квадрат. Я хочу обрезать изображение, чтобы обрезанное изображение было точно тем, что у пользователя есть места внутри квадрата.
Уровень предварительного просмотра имеет гравитацию AVLayerVideoGravityResizeAspectFill.
Похоже, что камера фактически захватывает не то, что видит пользователь в слое предварительного просмотра. Это означает, что мне нужно перейти от системы координат предварительного просмотра к системе координат захваченного изображения, чтобы я мог обрезать изображение. Для этого я считаю, что мне нужны следующие параметры: 1. соотношение между размером изображения и размером захваченного изображения. 2. информация, которая сообщает, какая часть захваченного изображения соответствует тому, что отображается на уровне предварительного просмотра.
Кто-нибудь знает, как я могу получить эту информацию, или если существует другой подход к обрезке изображения.
(p.s. захват снимка экрана предварительного просмотра не является вариантом, так как я понимаю, что это может привести к отказу приложения).
Заранее благодарю