Обрезать определенную область UIImage из UIImagePicker

мой заголовок взрывается с этой проблемой.

Я хочу реализовать что-то похожее на представление камеры в Instagram. Я использую Overlay View для настройки внешнего вида камеры.

Первая проблема - я не мог сделать Live View квадратным. Поэтому я создал виды, чтобы покрыть части живого изображения и сделать их квадратными.

Это решение привело к моей второй проблеме. Как я могу обрезать изображение, которое появляется в квадрате, который я сделал в режиме наложения.

Мое самое близкое решение пришло из этого сообщения: UIImage: изменить размер, затем обрезать

Есть ли способ сделать предварительный просмотр квадратной формы и использовать это изображение. Или я могу сделать квадрат из той части экрана, которая мне нужна, без искажений и потери качества.

С Уважением


person Camus    schedule 18.02.2014    source источник


Ответы (1)


GPUImage — отличная платформа для обработки видео с камер в реальном времени. Он может легко реализовать множество визуальных эффектов, включая кадрирование.

Например, чтобы сделать квадратный видеопоток с прямоугольного входа камеры:

GPUImageStillCamera *camera = [[GPUImageStillCamera alloc] initWithSessionPreset:AVCaptureSessionPreset1280x720 cameraPosition:AVCaptureDevicePositionBack];
camera.outputImageOrientation = UIInterfaceOrientationPortrait;

// 720 / 1280 = 0.5625
GPUImageCropFilter *squareCrop = [[GPUImageCropFilter alloc] initWithCropRegion:CGRectMake(0.0, 0.21875, 1.0, 0.5625)];

[camera addTarget:squareCrop];
[squareCrop addTarget:self.imageView];
[camera startCameraCapture];

Вам нужно будет прочитать документацию GPUImage, чтобы узнать, как правильно настроить фреймворк, но он станет достаточно мощным, как только вы научитесь его использовать.

person David Schwartz    schedule 18.02.2014
comment
Я попытался настроить его, и это не сработало. Я хотел бы узнать, возможно ли это с помощью средства выбора камеры. - person Camus; 19.02.2014
comment
Что ж, структура не нарушена... если вы не собираетесь тратить время на реализацию возможного решения вашей проблемы, то я мало чем могу вам помочь. Я рекомендую начать с одного из примеров проектов GPUImage. Оттуда должно быть легко добавить фильтр урожая в цепочку фильтров. - person David Schwartz; 20.02.2014