如何在Camera PreviewCallback中进行有效编码

时间:2015-04-20 07:12:37

标签: android bitmap camera rgb

我必须创建灰度相机实时预览。它工作正常。但我想让代码更快。

private android.hardware.Camera.PreviewCallback previewCallback = new android.hardware.Camera.PreviewCallback()
{
    public void onPreviewFrame(byte abyte0[] , Camera camera)
    {
        Size size = cameraParams.getPreviewSize();

        int[] rgbData = YuvUtils.decodeGreyscale(abyte0, size.width, size.height);

        Bitmap bitmapung = Bitmap.createBitmap(rgbData, size.width, size.height, Bitmap.Config.ARGB_8888);

        Bitmap bitmapToSet = Bitmap.createBitmap(bitmapung, 0, 0, widthPreview, heightPreview, matrix, true);

        MyActivity.View.setBitmapToDraw(bitmapToSet);
};
  1. 正在创建Bitmap object twice。我可以用一个人做这个工作 bitmap Object
  2. where(在onResume或onCreate之类的方法)应该是getCamera 大小(表示宽度和高度一次)。因此,我不需要为每个callback设置它。
  3. 我知道我应该使用AsyncTask来做。我会在之后做的 解决我目前的问题。
  4. 编辑

    我可以在获取Camera Size(width,height)时创建位图。然后,单个位图实例与我的Class相关联。但我必须致电setPixels

    bitmapung.setPixels(rgbData, offset, stride, x, y, size.width, size.height);
    

    我应该如何设置Stride,offset和x,y的值。并解释他们PLZ。

    还要看看这些问题

    Create custom Color Effect

    Add thermal effect to yuvImage

0 个答案:

没有答案