Добавить наложение / манипулировать с помощью AVFoundation для iPhone? - PullRequest
1 голос
/ 15 мая 2011

Я новичок во всём AVFoundation.До того, как я использовал старый добрый UIImagePickerControllerSourceTypeCamera.

Я в основном хочу сделать комбинацию добавления наложения полупрозрачного наложения, а также манипулирования пикселями для создания черно-белого эффекта, сепии и т. Д.

Я отображаю и записываю его с помощью инфраструктуры AVFoundation и могу сделать неподвижный кадр, но я не знаю, как добавить наложение.

Пожалуйста, помогите.Спасибо.

1 Ответ

1 голос
/ 16 мая 2011

Если вы собираетесь выполнить значительную обработку изображения, я предлагаю вам использовать OpenGL ES.Если это просто, например, наложение, то вы можете использовать CoreGraphics.

Вот быстрый фрагмент, чтобы добраться до пикселей.

void modifyImage(CMSampleBufferRef source) {
    CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(source);
    CVPixelBufferLockBaseAddress(imageBuffer,0);

    size_t bytesPerRow = CVPixelBufferGetBytesPerRow(imageBuffer);
    size_t width = CVPixelBufferGetWidth(imageBuffer);
    size_t height = CVPixelBufferGetHeight(imageBuffer);
    void *src_buff = CVPixelBufferGetBaseAddress(imageBuffer);

    int32_t *src = (int32_t*) src_buff;

    //modify the image

    CVPixelBufferUnlockBaseAddress(imageBuffer, 0);
    return;
}

Для хорошей отправной точки с использованием OpenGL ES для обработки видео см. Блог Брэда Ларсона .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...