2016-10-28 52 views
0

用户将使用前置摄像头,墙上有一块绿布(色彩背景)Android相机预览删除绿屏?

如何访问预览数据并对其进行更改:使用容差移除所选颜色?防爆绿色,包容65%

@Override 
public void onPreviewFrame(final byte[] data, Camera camera) { 
    Camera.Parameters parameters = camera.getParameters(); 
    int width = parameters.getPreviewSize().width; 
    int height = parameters.getPreviewSize().height; 

    YuvImage yuv = new YuvImage(data, parameters.getPreviewFormat(), width, height, null); 

    ByteArrayOutputStream out = new ByteArrayOutputStream(); 
    yuv.compressToJpeg(new Rect(0, 0, width, height), 50, out); 

    byte[] bytes = out.toByteArray(); 
    final Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); 

    MyActivity.this.runOnUiThread(new Runnable() { 

     @Override 
     public void run() { 
      ((ImageView) findViewById(R.id.loopback)).setImageBitmap(bitmap); 
     } 
    }); 
} 

http://jylee-world.blogspot.ro/2014/12/a-tutorial-of-androidhardwarec

我们需要简单的教程。即使在 中也没有好的示例代码。

+0

你尝试任何代码 –

+0

@sohail absoluthly无用的评论 – Moni

回答

0

使用Bitmap.getPixel(INT X,int y)对获得各像素bitmap.setPixel()的颜色来改变颜色,你喜欢什么

int pixel = bitmap.getPixel(x,y); 
int R = Color.red(pixel); 
int G = Color.blue(pixel); 
int B = Color.green(pixel); 

if G == //(range of green values) 
    bitmap.setPixel(x, y, color)