Balaraj Nayak Ответов: 1

Как конвертировать byte[] ato byte в C#


Привет я пытаюсь вызвать одну из функций в DLL файлах под названием bayer2rgb

который имеет параметры char

но
У меня есть исходный параметр, который должен дать находится в байте[] как преобразовать байт[] в байт
или как непосредственно дать ссылку на переменные char во время вызова.


извините за мой английский.

Что я уже пробовал:

функция dll:
__declspec(dllexport) void bayer2rgb24(unsigned char *dst, unsigned char *src, long int WIDTH, long int HEIGHT)
{




параметры, которые я должен дать, дают при вызове вышеуказанной функции
byte[][] dst;
     byte[][] src;
     int width = 700;
     int height = 500;


как пример:
bayer2rgb24(src,dst,width,height);

Richard MacCutchan

Исходные и целевые параметры должны быть одномерными массивами данных. char, т. е. byte Поэтому вам нужно скопировать необходимые данные в новые массивы. Поскольку мы не знаем, что содержат ваши массивы, мы не можем предложить, что делать.

Balaraj Nayak

массив xbufs[][] содержит потоковые данные от датчика , его в необработанном формате , функция bayer2rgb будет выполнять функцию, рассматривая xbuff в качестве источника и dbuff в качестве назначения, и должна хранить данные в целевом буфере dbuf[][],
поскольку это 2d-зубчатые массивы, я не знаю, как их передать, если вы знаете общую концепцию того, как передать указатель на 2d-зубчатый массив, если это возможно, запишите код .

1 Ответов

Рейтинг:
12

OriginalGriff

Функция требует одномерных массивов:

char[] chars;
byte[] bytes;
Вы не можете напрямую передать двумерный массив, потому что "расположение" данных не одно и то же.
Еще хуже то, что вы пытаетесь apss не является "базовым" 2D - массивом- это массив массивов - что означает, что линии не все одинаковой длины, или даже присутствуют в некоторых случаях.
Так как имя dst подразумевается, что одномерный массив будет использоваться вызываемой функцией в качестве выходного сигнала, жизненно важно правильно получить ti, а зубчатый массив определенно не подходит, так как его первое измерение на самом деле представляет собой массив ссылок на отдельные массивы байтов.

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