新手求教.有关onPreviewFrame未被调用的问题

 我来答
huanglenzhi
2015-01-06 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517191
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  把预览的图片数据处理一下就好,很自然的我只是用了onPreviewFrame调用,考虑处理传递进来的data数据流就是了。

  data字节流默认是YCbCr_420_SP

  有人提供了这么一段转换的代码:将data转为了bitmap

  

  public static Bitmap rawByteArray2RGBABitmap2(byte[] data, int width, int height) {

  int frameSize = width * height;

  int[] rgba = new int[frameSize];

  

  for (int i = 0; i < height; i++)

  for (int j = 0; j < width; j++) {

  int y = (0xff & ((int) data[i * width + j]));

  int u = (0xff & ((int) data[frameSize + (i >> 1) * width + (j & ~1) + 0]));

  int v = (0xff & ((int) data[frameSize + (i >> 1) * width + (j & ~1) + 1]));

  y = y < 16 ? 16 : y;

  

  int r = Math.round(1.164f * (y - 16) + 1.596f * (v - 128));

  int g = Math.round(1.164f * (y - 16) - 0.813f * (v - 128) - 0.391f * (u - 128));

  int b = Math.round(1.164f * (y - 16) + 2.018f * (u - 128));

  

  r = r < 0 ? 0 : (r > 255 ? 255 : r);

  g = g < 0 ? 0 : (g > 255 ? 255 : g);

  b = b < 0 ? 0 : (b > 255 ? 255 : b);

  

  rgba[i * width + j] = 0xff000000 + (b << 16) + (g << 8) + r;

  }

  

  Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);

  bmp.setPixels(rgba, 0 , width, 0, 0, width, height);

  return bmp;

  }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式