Java 当我将rgb位图转换为yuv时,它会生成一个红色图像。我想从图库中读取YUV格式的图像或将RGB位图转换为YUV
我想使用图像的Y、U和V通道。我如何瞄准这些频道?需要转换的帮助。请给我一些示例代码。 这是我的密码Java 当我将rgb位图转换为yuv时,它会生成一个红色图像。我想从图库中读取YUV格式的图像或将RGB位图转换为YUV,java,android,image,bitmap,yuv,Java,Android,Image,Bitmap,Yuv,我想使用图像的Y、U和V通道。我如何瞄准这些频道?需要转换的帮助。请给我一些示例代码。 这是我的密码 public void YUVImage(View view) { Bitmap bitmap = ((BitmapDrawable)OrignalImg.getDrawable()).getBitmap();//reading image from imageView int bwidth = bitmap.getWidth(); int bheight = bitm
public void YUVImage(View view) {
Bitmap bitmap = ((BitmapDrawable)OrignalImg.getDrawable()).getBitmap();//reading image from imageView
int bwidth = bitmap.getWidth();
int bheight = bitmap.getHeight();
Bitmap mutableBitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);
Canvas c = new Canvas(mutableBitmap);
Toast.makeText(this, "Done 1 ok ",
Toast.LENGTH_LONG).show();
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setFilterBitmap(true);
Toast.makeText(this, "Done 2 ok ",
Toast.LENGTH_LONG).show();
ColorMatrix yuvMatrix = new ColorMatrix();
yuvMatrix.setRGB2YUV();
Toast.makeText(this, "Now Yuv ok ",
Toast.LENGTH_LONG).show();
ColorFilter filter = new ColorMatrixColorFilter(yuvMatrix);
paint.setColorFilter(filter);
Matrix matrix = new Matrix();
matrix.setTranslate(2*bwidth, 2*bheight);
c.drawBitmap(mutableBitmap, 0, 0, paint);
Toast.makeText(this, "Canvas ok ",
Toast.LENGTH_LONG).show();
ImageView mImg=null;
mImg = (ImageView) findViewById(R.id.imageView1);
mImg.setImageDrawable(new BitmapDrawable(getResources(), mutableBitmap));
//mImg.setImageBitmap(newBitmap);
Toast.makeText(this, "YUV Image converted",
Toast.LENGTH_LONG).show();
}
如果你只是想要这些值,那么简单的数学就是你所需要的
void rgb2yuv(int r, int g, int b) {
int y = (int)(0.299 * r + 0.587 * g + 0.114 * b);
int u = (int)((b - y) * 0.492f);
int v = (int)((r - y) * 0.877f);
}
只需将0替换为您的图像大小 c、 drawBitmap(可变位图、x、y、绘制)
这对我很有帮助。可能重复:谢谢你,安德鲁,我已经读了这篇文章,但没有相关内容。我也使用了encodeYV12和getYV12方法,但是我的应用程序崩溃了,消息数组索引越界异常@AndrewHi@Andrew这些值能帮助我创建与原始图像相同的图像位图吗。???你是对的,我可以用你的方法得到这些值,但我只会用这些值做什么呢。我想要一个YUV格式的图像位图。这样我就可以继续我的申请了。我已经搜索了很多次,尝试了不同的方法,但正如你所看到的,我仍然被卡住了。你尝试过搜索“位图到YUV”吗?只要您知道如何将字节数组转换为位图,这个问题的答案几乎就是您所需要的。