【发布时间】:2012-12-10 09:10:31
【问题描述】:
我正在为 Android 操作系统开发应用程序,它可以帮助您在相机的帮助下进行绘画。应用程序以从相机槽onPreviewFrame(byte[] data, Camera camera) 捕获帧的方式工作,并从这里将图片转换为二进制黑/白。一般应用程序有效,但我有以下问题:
-
通过 onPreviewFrame 抓图真的很慢。现在我跳过帧,但方法仍然很慢。
YuvImage yuvImage = new YuvImage(data, ImageFormat.NV21, width, height, null); ByteArrayOutputStream baos = new ByteArrayOutputStream(); yuvImage.compressToJpeg(new Rect(0,0,width, height), 100, baos); byte [] imageData = baos.toByteArray(); Bitmap bmp = BitmapFactory.decodeByteArray(imageData , 0, imageData .length); bmp = Bitmap.createScaledBitmap(bmp, surfaceView.getMeasuredHeight(), surfaceView.getMeasuredWidth(), false); Bitmap bmps = ImageHelper.rotate(bmp, kot);有什么方法可以更快地获取图片?
我还注意到,虽然手机完全静止且光线相同,但每几帧图片都不相同(不同的直方图)。
【问题讨论】:
-
是的,但不一样...
-
我知道你在
onPreviewFrame()方法中做了很多操作,你正在测试它的手机的规格是什么? -
我认为这会有所帮助:-stackoverflow.com/questions/7621178/…