Я пытаюсь создать приложение для Android, которое будет обрабатывать кадры камеры в режиме реального времени. Для начала я просто хочу отобразить версию в оттенках серого, что видит камера. Мне удалось извлечь соответствующие значения из массива байтов в методе onPreviewFrame
. Ниже приведен фрагмент моего кода:
byte[] pic;
int pic_size;
Bitmap picframe;
public void onPreviewFrame(byte[] frame, Camera c)
{
pic_size = mCamera.getParameters().getPreviewSize().height * mCamera.getParameters().getPreviewSize().width;
pic = new byte[pic_size];
for(int i = 0; i < pic_size; i++)
{
pic[i] = frame[i];
}
picframe = BitmapFactory.decodeByteArray(pic, 0, pic_size);
}
Первыми [width*height]
значениями массива byte[]
являются значения яркости (оттенки серого). Как только я их извлечу, как мне отображать их на экране в качестве изображения? Это не 2D-массив, так как бы я указал ширину и высоту?