2016-04-14 31 views
0

我有一个应用程序。你可以用它拍照。 如果图片被捕获,onPictureTaken()被调用。在这个方法中,它被转换为一个位图,然后我将它保存在本地存储上。Android Mat将JPEG转换为倒立颜色

@Override 
    public void onPictureTaken(byte[] data, Camera camera) { 
     MatOfByte raw=new MatOfByte(data); 
     Mat mat = Imgcodecs.imdecode(raw,Imgcodecs.CV_LOAD_IMAGE_UNCHANGED); 
     Mat tmp = new Mat(); 

     Imgproc.cvtColor(mat, tmp, Imgproc.COLOR_BGRA2BGR); 

     Bitmap bmp = Bitmap.createBitmap(mat.cols(), mat.rows(), Bitmap.Config.ARGB_8888); 
     Utils.matToBitmap(mat, bmp); 

     storeBitMap(bmp); 
    } 

我不知道为什么,但是当我打开我的文件管理器上的图片时,它有倒置的颜色。我究竟做错了什么?

+0

你试过没有cvtColor方法? –

回答

0

我不小心把错误的PARAMS

在Utils.matToBitmap(垫,BMP)。应该是:Utils.matToBitmap(TMP,BMP)

现在一切工作正常。