ios: добавление эффектов фильтра в реальном времени к фотографиям - PullRequest
2 голосов
/ 20 августа 2011

Я хочу запрограммировать приложение ios, которое делает фотографии, но я бы хотел отфильтровать предварительный просмотр фотографий в режиме реального времени. То, что я имею в виду, реализовано в приложении под названием «CamWow» (здесь видео о приложении: http://www.youtube.com/watch?v=L_o-Bx08YZE). Мне любопытно, как это можно сделать. Кто-нибудь знает, как создать такое приложение, которое обеспечивает отфильтрованный предварительный просмотр фотографии в реальном времени и захватывает отфильтрованную фотографию?

Ответы [ 2 ]

4 голосов
/ 13 марта 2012

Как отмечает Fraggle, в iOS 5.0 вы можете использовать Core Image Framework для фильтрации изображений. Однако Core Image ограничен фильтрами, которые они поставляют вместе с платформой, и я обнаружил, что во многих случаях не может обрабатывать видео в реальном времени .

В результате я создал свою лицензированную BSD среду с открытым исходным кодом GPUImage , которая инкапсулирует код OpenGL ES 2.0, необходимый для обработки изображений и видео с GPU-ускорением. У меня есть несколько примеров фильтрации, которые вы можете сделать с этим в этом ответе , и вы можете легко написать свои собственные фильтры, используя язык затенения OpenGL. Примеры приложений в рамках показывают, как выполнять фильтрацию изображений с предварительным просмотром в реальном времени, а также как фильтровать и сохранять их на диск.

1 голос
/ 08 ноября 2011

Я ищу такую ​​же информацию (это довольно популярный сектор, поэтому некоторые разработчики, возможно, пока не захотят отказываться от товара). Я наткнулся на это , которое может быть не совсем тем, что вы хотите, но может быть близко. Это пошаговое руководство по обработке видео в реальном времени.

Редактировать : я пробовал код, который был указан в этой ссылке. Может использоваться для предоставления фильтров в режиме реального времени. Я изменил метод captureOutput в ViewController.m, закомментировал второй этап фильтрации («CIMinimumCompositing») и вставил свой собственный фильтр (я использовал «CIColorMonochrome»).

Это сработало. Мои первые несколько попыток не увенчались успехом, потому что не все фильтры в справочнике Core Image Filter доступны для iOS. Здесь есть еще документация .

Не уверен, что этот код является лучшим с точки зрения производительности, но он работает.

Редактировать # 2 : Я видел некоторые другие ответы о SOverflow, которые рекомендовали использовать OpenGL для обработки, чего не делает этот пример кода. OpenGL должен быть быстрее.

...