大佬教程收集整理的这篇文章主要介绍了如何将android位图转换为NV12颜色格式?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我发现代码从android位图给我nv21,似乎代码工作.
(Convert bitmap array to YUV (YCbCr NV21))
我发现的唯一区别是根据参考在NV12和nv21之间切换U和V字节.
(http://www.fourcc.org/yuv.php)
所以我从原始代码改变了U和V的位置,然后结果如下.
byte [] getNV12(int inputWidth,int inputHeight,Bitmap scaled) { // Reference (Variation) : https://gist.github.com/wobbals/5725412 int [] argb = new int[inputWidth * inputHeight]; //Log.i(tag,"scaled : " + scaled); scaled.getPixels(argb,inputWidth,inputHeight); byte [] yuv = new byte[inputWidth*inputHeight*3/2]; encodeYUV420SP(yuv,argb,inputHeight); scaled.recycle(); return yuv; } void encodeYUV420SP(byte[] yuv420sp,int[] argb,int width,int height) { final int frameSize = width * height; int yIndex = 0; int uvIndex = frameSize; int a,R,G,B,Y,U,V; int index = 0; for (int j = 0; j < height; j++) { for (int i = 0; i < width; i++) { a = (argb[index] & 0xff000000) >> 24; // a is not used obvIoUsly R = (argb[index] & 0xff0000) >> 16; G = (argb[index] & 0xff00) >> 8; B = (argb[index] & 0xff) >> 0; // well kNown RGB to YUV algorithm Y = ( ( 66 * R + 129 * G + 25 * B + 128) >> 8) + 16; V = ( ( -38 * R - 74 * G + 112 * B + 128) >> 8) + 128; // PrevIoUsly U U = ( ( 112 * R - 94 * G - 18 * B + 128) >> 8) + 128; // PrevIoUsly V yuv420sp[yIndex++] = (bytE) ((Y < 0) ? 0 : ((Y > 255) ? 255 : Y)); if (j % 2 == 0 && index % 2 == 0) { yuv420sp[uvIndex++] = (bytE)((V<0) ? 0 : ((V > 255) ? 255 : V)); yuv420sp[uvIndex++] = (bytE)((U<0) ? 0 : ((U > 255) ? 255 : U)); } index ++; } } }
转换图片我错了吗?
(我很确定编码器没问题.)
截图图片截图:https://www.dropbox.com/s/vho14831fgnh1kl/Thu%20Aug%2001%2008_56_14%20GMT%2B09_00%202013%20%281%29.mp4_000002000.jpg
a = (argb[index] & 0xff000000) >> 24; // a is not used obvIoUsly R = (argb[index] & 0xff0000) >> 16; G = (argb[index] & 0xff00) >> 8; B = (argb[index] & 0xff) >> 0;
用,
R = (argb[index] & 0xff000000) >>> 24; G = (argb[index] & 0xff0000) >> 16; B = (argb[index] & 0xff00) >> 8;
以上是大佬教程为你收集整理的如何将android位图转换为NV12颜色格式?全部内容,希望文章能够帮你解决如何将android位图转换为NV12颜色格式?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。