我正在使用Zxing库在我的应用程序中仅扫描QRcode 39
。感谢sean
的出色工作。它工作正常,但问题是,扫描需要更多时间。我用前置摄像头和后置摄像头扫描。
我正在使用zxing项目作为我的应用程序库。
在cameraInfo API的帮助下,我找到前置摄像头索引并将意图传递给ScanCard which extends CaptureActivity
- > CameraManager
。
public class ScanCard extends CaptureActivity {
@Override
public void handleDecode(Result rawResult, Bitmap barcode) {
// TODO Auto-generated method stub
super.handleDecode(rawResult, barcode);
mScanResult = rawResult.getText().toString();
}
}
在Camera Manager类中,我进行了相应更改,以显示前置摄像头进行扫描,如下所示。
public void openDriver(SurfaceHolder holder, int myCamera)
throws IOException {
Camera theCamera = camera;
if (theCamera == null) {
theCamera = Camera.open(myCamera);
if (theCamera == null) {
throw new IOException();
}
camera = theCamera;
}
theCamera.setPreviewDisplay(holder);
if (!initialized) {
initialized = true;
configManager.initFromCameraParameters(theCamera);
if (requestedFramingRectWidth > 0 && requestedFramingRectHeight > 0) {
setManualFramingRect(requestedFramingRectWidth,
requestedFramingRectHeight);
requestedFramingRectWidth = 0;
requestedFramingRectHeight = 0;
}
}
configManager.setDesiredCameraParameters(theCamera);
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(context);
reverseImage = prefs.getBoolean(PreferencesActivity.KEY_REVERSE_IMAGE,
false);
}
我该怎么做才能让扫描更快?谢谢你的帮助
当我四处冲浪时,我得到了这个Nimbledroid。与NimbleDroid一起使用会很好吗?
答案 0 :(得分:-2)
https://github.com/zxing/zxing核心文件夹是公平的,可以处理android。你不需要使用android-xxx项目。
如果您想更快地扫描代码,您应该使用ZBar库http://zbar.sourceforge.net/,但它是在GPL许可下。
修改强>
int bitmapWidth = bitmap.getWidth();
int bitmapHeight = bitmap.getHeight();
int[] pixels = new int[bitmapWidth * bitmapHeight];
bitmap.getPixels(pixels, 0, bitmapWidth, 0, 0, bitmapWidth, bitmapHeight);
bitmap.recycle();
RGBLuminanceSource source = new RGBLuminanceSource(bitmapWidth, bitmapHeight, pixels);
BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(source));
Reader reader = new MultiFormatReader();
try {
return reader.decode(binaryBitmap).toString();
} catch (Exception e) {
// nothing happens - entry is just not available in this frame
}
return null;
位图是从摄像机视频预览创建的Bitmap对象。 Here您解释了如何设置相机预览。 在Camera对象中,您应该设置PreviewCallback,它会为您提供应转换为位图的字节。 Zxing有一个很好的api,但他们的Android应用程序是垃圾 - 这就是你需要的全部。
HTH
PS。放入谷歌" zbar android" - 第一个链接包含在github上分享的api api ...
答案 1 :(得分:-3)
为什么不尝试将zxing项目添加为应用程序中的库,而不是添加zxing库的所有包。