http://chenweihuacwh.iteye.com/blog/571223


#########################################


  static public void decodeYUV420SP(byte[] rgbBuf, byte[] yuv420sp, int width, int height) {      final int frameSize = width * height;  if (rgbBuf == null)      throw new NullPointerException("buffer 'rgbBuf' is null");  if (rgbBuf.length < frameSize * 3)      throw new IllegalArgumentException("buffer 'rgbBuf' size "              + rgbBuf.length + " < minimum " + frameSize * 3);    if (yuv420sp == null)      throw new NullPointerException("buffer 'yuv420sp' is null");    if (yuv420sp.length < frameSize * 3 / 2)      throw new IllegalArgumentException("buffer 'yuv420sp' size " + yuv420sp.length              + " < minimum " + frameSize * 3 / 2);            int i = 0, y = 0;      int uvp = 0, u = 0, v = 0;      int y1192 = 0, r = 0, g = 0, b = 0;            for (int j = 0, yp = 0; j < height; j++) {          uvp = frameSize + (j >> 1) * width;          u = 0;          v = 0;          for (i = 0; i < width; i++, yp++) {              y = (0xff & ((int) yuv420sp[yp])) - 16;              if (y < 0) y = 0;              if ((i & 1) == 0) {                  v = (0xff & yuv420sp[uvp++]) - 128;                  u = (0xff & yuv420sp[uvp++]) - 128;              }                            y1192 = 1192 * y;              r = (y1192 + 1634 * v);              g = (y1192 - 833 * v - 400 * u);              b = (y1192 + 2066 * u);                            if (r < 0) r = 0; else if (r > 262143) r = 262143;              if (g < 0) g = 0; else if (g > 262143) g = 262143;              if (b < 0) b = 0; else if (b > 262143) b = 262143;                            rgbBuf[yp * 3] = (byte)(r >> 10);              rgbBuf[yp * 3 + 1] = (byte)(g >> 10);              rgbBuf[yp * 3 + 2] = (byte)(b >> 10);          }      }    } 


更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. Android(安卓)SDK之API Level
  2. Android(安卓)安全性和权限
  3. Android(安卓)自带图标库 android.R.draw
  4. Android(安卓)SDK NDK 下载地址
  5. Android(安卓)自带图标库 android.R.draw
  6. android studio_聚焦 Android(安卓)11: A
  7. android text右对齐显示 并且 多余文字显
  8. Android(安卓)Activity Manifest 标签
  9. NDK r9d版本下载
  10. Android(安卓)sdk ndk 下载地址