如何以编程的方式读取使用手机摄像头捕获的条形码?例如,如何在iPhone、Android或Java ME上实现此功能?我们需要单独的硬件来读取条形码吗,还是可以进行图像处理?
谷歌使用他们的Zebra Crossing库使这个过程变得非常简单明了。他们支持以下平台上的图像扫描:
其他人已经将其移植到:
正如另一个帖子所提到的,对于Android,您还可以使用Intent来调用条形码阅读器,类似于:
public Button.OnClickListener mScan = new Button.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "ONE_D_MODE");
startActivityForResult(intent, 0);
}
};
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
}
对于Android来说,非常简单。只需使用条形码扫描应用程序(依赖项)提供的服务。然后,条形码扫描应用程序将处理所有扫描部分,并简单地返回代码。
我认为类似的解决方案也适用于其他平台,但在Android中更容易实现,因为它具有Intent架构。
针对所有寻找此问题答案的新手,现在Google通过Google Play服务提供条形码检测API,以简化使用手机相机扫描条形码的过程。不再需要依赖第三方API。
很明显,从图像中读取条形码是可能的。你可能需要考虑以下问题:
有很多现有的项目和产品可以解决这个问题... 这里是其中一个。有些解决方案似乎不太敏感于上述的问题,但声称能够在图像中找到和识别条形码,而不考虑方向和位置等因素。