小编Ryo*_*far的帖子

BitmapFactory.decodeByteArray()返回NULL

我正在使用相机的previewCallback尝试抓取图像.这是我正在使用的代码

private Camera.PreviewCallback mPrevCallback = new Camera.PreviewCallback() 
{
        public void onPreviewFrame( byte[] data, Camera Cam ) {
                Log.d("CombineTestActivity", "Preview started");
                Log.d("CombineTestActivity", "Data length = " 
                        + data.length );
                currentprev = BitmapFactory.decodeByteArray( data, 0, 
                        data.length );

               if( currentprev == null )
                   Log.d("CombineTestActivity", "currentprev is null" );

                Log.d("CombineTestActivity", "Preview Finished" );

        }
};
Run Code Online (Sandbox Code Playgroud)

数据的长度总是与576000相同.

此外,我尝试更改相机的参数,以便图像以不同的格式返回.这就是我这样做时的样子.

mCamera = Camera.open();
camParam = mCamera.getParameters();
camParam.setPreviewFormat( ImageFormat.RGB_565 );
mCamera.setParameters( camParam );
    mCamera.setPreviewCallback( mPrevCallback );
Run Code Online (Sandbox Code Playgroud)

但是,当我更改预览格式并将其保留为默认值NV21时,BitmapFactory.decodeByteArray将返回null.我也尝试将预览格式更改为JPEG类型.我甚至在ddms中得到了一个调试语句,这就是我得到的

"D/skia(14391):--- SkImageDecoder :: Factory返回null"

java format camera android image

20
推荐指数
3
解决办法
3万
查看次数

如何检测Android上的触摸输入

现在我所要做的就是检测屏幕被按下的时间,然后显示一条日志消息以确认它发生了.到目前为止我的代码是从CameraPreview示例代码修改的(它最终会拍照)所以大部分代码都在扩展SurfaceView的类中.SDK中示例代码的API为7.

events android input touch

15
推荐指数
3
解决办法
6万
查看次数

有没有一种简单的方法可以将字节数组从相机的onPreviewFrame转换为android中的图片?

我问是否有一个简单的方法,因为谷歌问题报告说使用decodeByteArray是不可能的.但该报告起源于2008年,我希望有一个解决方案没有发布在那里.问题报告中列出的方法是自己解码格式,但我宁愿不必将其放入并减慢程序速度.任何帮助都将不胜感激.

camera android image preview

6
推荐指数
2
解决办法
4552
查看次数

标签 统计

android ×3

camera ×2

image ×2

events ×1

format ×1

input ×1

java ×1

preview ×1

touch ×1