Я пытаюсь заменить glReadPixels()
на вещи EGL, чтобы сделать это быстрее.Только определенная ширина экрана работает при использовании GraphicBuffer (EGL) в Android NDK
Ссылаясь на this post, я успешно сделал это в моем проекте. Мой код почти такой же, как и на этом посту.
Тем не менее, странная вещь: ширина должна быть определенными пикселями, например 384, 640, 720, 1280 и т. Д. Если ширина, которую я установил не среди них, изображение фактически отображается в какая-то другая ширина среди них, поэтому было бы искажено при отображении с помощью cv :: Mat и т. д.
Похоже, система Android делает некоторые ограничения по ширине EGLImage. К сожалению, я не знаком с разработкой Android ...
Как это происходит? Как это исправить?
Заранее спасибо.
Спасибо! Ты прав. В GraphicBuffer есть 'getStride()', который сообщает фактическую ширину буфера рендеринга. Просто пропустите прокладку на хвосте каждой строки, тогда все будет хорошо –