Объединение двух буферов изображений YV12 в одно параллельное изображение Java / Android - PullRequest
5 голосов
/ 18 июня 2020

На этот вопрос есть ответ на C ++. Есть ли способ сделать то же самое или вызвать код со стороны Java / Android?

Объединение двух буферов изображений YV12 в одно изображение бок о бок

Какие аналоги этого кода в java / kotlin?

BYTE* source = buffer;
BYTE* destination = convertBuffer3D;

У этой функции memcpy (взято из справочника c ++ memcopy ) есть аналоги?

void * memcpy ( void * destination, const void * source, size_t num );

1 Ответ

4 голосов
/ 22 июня 2020

Почему вы не используете копию массива Java, System.arraycopy или метод класса java.util.Arrays.copyOf.

 byte[] source_arr = {0,1,2};
 byte[] dest_arr = Arrays.copyOf(source_arr , source_arr.length);

arraycopy

Вы можете использовать arraycopy. см. oracle docs arraycopy

public static void arraycopy(Object src,
                             int srcPos,
                             Object dest,
                             int destPos,
                             int length)

, поскольку java не имеет типа данных unsigned char или c++ byte, например. единственный известный мне способ достичь подобного типа данных (BYTE) в C ++ - это преобразовать целочисленный тип в байт:

int var = 128;
byte _BYTE = (byte)128;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...