我有一个接收收据照片的应用程序,我想使用Zxing来阅读此位图并提取QR码和条码信息。那可能吗?如果是的话,你能分享一下Android的代码吗?如何使用Zxing应用程序扫描android中的位图?
0
A
回答
0
它非常简单,你需要startActivityforResult,类似的来电呼叫其他活动..
在你行动时,扫描被调用,你需要调用以下:
public InvokeScan()
{
mAppPAckage="com.google.zxing.client.android.SCAN"
Intent intentScan = new Intent(mAppPackage);
intentScan.addCategory(Intent.CATEGORY_DEFAULT);
// set the desired barcode types
intentScan.putExtra("SCAN_FORMATS", stringDesiredBarcodeFormats);
final PackageManager packageManager = activity.getPackageManager();
List<ResolveInfo> list = packageManager.queryIntentActivities(intentScan,
PackageManager.MATCH_DEFAULT_ONLY);
activity.startActivityForResult(intentScan,REQUEST_CODE);
onActivityResult,你需要捕获结果
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (resultCode == Activity.RESULT_OK)
{
String desiredBarCodeFormat = BarCodeActivity.sDesiredBarcodeFormatValue;*/
String contents = intent.getStringExtra(activityBundleName);
String formatName = intent.getStringExtra(desiredBarCodeFormat);
//do whatever you want from contents.
}
}
内容将是您需要的条形码号码。
0
ZXing有各种各样的叉子可以使用。
例如:https://zxingnet.codeplex.com/
// create a barcode reader instance
IBarcodeReader reader = new BarcodeReader();
// load a bitmap
var barcodeBitmap = (Bitmap)Bitmap.LoadFrom("C:\\sample-barcode-image.png");
// detect and decode the barcode inside the bitmap
var result = reader.Decode(barcodeBitmap);
// do something with the result
if (result != null)
{
txtDecoderType.Text = result.BarcodeFormat.ToString();
txtDecoderContent.Text = result.Text;
}
+0
提供的示例是zxing的.NET版本,不适用于Android。 OP没有提到Xamarin,所以我不认为这是相关的 – redspidermkv
0
如果你不想坚持到斑马线,你可以去Barcode Scanning Apis可以从谷歌Play业务7.8版本。这有能力读取各种条形码。它可以将图像作为位图或直接扫描条形码。假设您已从图库中获取图像并将其转换为位图。请在下面的代码中找到使用此库发送要扫描的条形码图像的代码。
Frame frame = new Frame.Builder().setBitmap(bitmap).build();
BarcodeDetector barcodeDetector = new BarcodeDetector.Builder(context)
.build();
if(barcode.isOperational()){
SparseArray<Barcode> sparseArray = barcodeDetector.detect(frame);
if(sparseArray != null && sparseArray.size() > 0){
for (int i = 0; i < sparseArray.size(); i++){
Log.d(LOG_TAG, "Value: " + sparseArray.valueAt(i).rawValue + "----" + sparseArray.valueAt(i).displayValue);
Toast.makeText(LOG_TAG, sparseArray.valueAt(i).rawValue, Toast.LENGTH_SHORT).show();
}
}else {
Log.e(LOG_TAG,"SparseArray null or empty");
}
}else{
Log.e(LOG_TAG, "Detector dependencies are not yet downloaded");
}
在你的build.gradle文件,包括根据依赖关系部分如下:编译 'com.google.android.gms:发挥服务:7.8 +。' 并添加以下清单权限:
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- Meta data for google play services: -->
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<!-- Meta data for first time install/run time dependencies to be downloaded for getting barcode detector operational -->
<meta-data
android:name="com.google.android.gms.vision.DEPENDENCIES"
android:value="barcode" />
有关此api的详细用法,请参阅Github Sample,关注Code Lab,Documentation。
相关问题
- 1. 如何使用ZXING扫描结果
- 2. 在Android上使用“Zxing的条形码扫描仪”应用程序
- 3. ZXing用于Web应用程序的条码扫描仪
- 4. 如何在WPF应用程序中使用Interop.WIA扫描图像
- 5. 条码扫描器应用Android没有使用ZXing库
- 6. 如何知道使用zxing扫描结果的类型为android
- 7. 条形码扫描器zxing和neoreader在我的应用程序
- 8. 如何在Android中使用zxing应用程序扫描格式PDF 417的条形码?
- 9. 用Zxing扫描GS1-128
- 10. 在android应用程序中设置zxing 2.0条形码扫描器
- 11. 如何扫描我的应用程序中的android
- 12. ZXing BarCode扫描仪只扫描应用条码
- 13. 扫描图片的应用程序
- 14. 扫描仪Android应用程序
- 15. iBeacon同时扫描(Android应用程序)
- 16. 将Zxing条码扫描器集成到我的Android应用程序
- 17. iPhone上的Zxing:如何在我的应用程序中扫描包含zxing小部件的qrcode?
- 18. Android中使用ZXING库的QR码扫描器
- 19. 使用zxing时获取扫描结果?
- 20. Zxing Android应用程序
- 21. 如何在c#.net应用程序中使用扫描器
- 22. Zxing使用Xamarin.Forms的Android设备上的条码扫描器
- 23. 如何检测Android应用程序的后台扫描?
- 24. zxing扫描器上的图层
- 25. 如何将条码扫描器与android应用程序集成?
- 26. Android Zxing扫描仪和光标
- 27. 如何从Android应用程序内启动与SocketMobile 7C系列扫描仪扫描程序的连接?
- 28. 在安装过程中扫描应用程序在android
- 29. 用zxing连续扫描条形码
- 30. 用ZXing扫描多个条码
嗨阿希什拉威,谢谢你提出这个问题,但我正在寻找一种方法来发送一个已经在Zxing电话中获得条形码的pircture。你知道如何做到这一点?谢谢。 – Carlos