is there a way to read 1d barcodes using zxing for iPhone? The zxing's homepage says it can only be used for QR Codes but has anyone ported 1D barcode scanning to iPhone or C++?
See Why don't 1D codes work on iOS devices? in the FAQ (which, FWIW, I wrote).
There are ports of 1D decoders but while there is lots of interest, no one has stepped up to maintain them. They're out of date with respect to the Java decoders which shows in their lower accuracy on the ZXing test set.
Related
I have done some research on barcode scanners available for iOS/Android and found ZXing framework to be a reliable free scanner SDK for auto-focus camera devices only(is this right?). My requirement is to scan a barcode on iOS/Android devices and the following operations should be performed:
Capture the barcode image and use a Barcode scanner SDK (like zxing) to scan the image and decode some details(like name, age and other personal details) from the barcode(I understand 2D barcodes formats like QR code are required for this purpose). Firstly is this possible and what will be the performance, speed, accuracy in this case?
But more importantly our customer has to design such barcode for us to decode(without any internet connectivity, all the details should be embedded in the barcode). Is this possible and if so are there any specific frameworks available, what are the essentials for such a framework?
Any help, useful links will be much appreciated. Thanks in advance!
Not sure about performance, speed and accuracy, but they'll be about the same as existing barcode scanner apps, since ZXing is a widely-used framework. You're right about needing a 2D barcode for that amount of data; bear in mind that the more data you encode into a 2D barcode, the harder it will be for a barcode reader to recognise.
ZXing can do this for you as well. zxing.appspot.com has the same code the ZXing website uses to generate barcodes. Just write an app that incorporates that and you're good to go. You can put any data you want into a 2D barcode, so it'll be up to you as to how you format that data. There are some existing formats (like vcards and web links), but it sounds like you want a custom format.
The easiest thing would be to have a look at the ZXing barcode reader app. Pretty much everything you want to do has already been done, and the Apache license is pretty permissive.
Are there any free alternatives to Zxing's PDF 417 barcode detector and decoder?
The following 2 iOS libraries cannot seem to scan these type of bar codes, even though they say it's supported:
https://github.com/zxing/zxing
https://github.com/TheLevelUp/ZXingObjC/
I've read on Zxing's SVN/Google Code page that PDF 417 decoding is in the alpha stage, which probably explains why my the barcodes I'm testing on aren't being recognized.
After a few days of research and testing, I've come across the following, effective, yet non-free solutions:
RedLaser's SDK
Manatee Works' SDK
With iOS7 or above, you don't have to rely on third-party libraries for barcode detection or decoding. AVFoundation has built-in (and hence free) support for detecting both 1D and 2D barcodes including PDF417 and QR codes using the device camera.
You can find working examples here and here.
I know that the ZXing library for iOS reads only QR codes, but is there a version or port somewhere that reads 1d barcodes as well?
I can't seem to find one that is working currently.
The ZXing port for iOS does decode more than QR codes. For example, the Data Matrix port is up to date.
The 1D code support is not strong. You can turn 1D support on (look at the ScanTest code for an example how) and it will decode many 1D codes, but not as reliably as the Java port. (Use the code in svn or the git mirror if you do this; there's been a patch to fix a crash since the last release).
There's no port of ZXing that does better than this. No one has stepped up to help keep the 1D code in as good of shape in C++ as it is in Java.
It's not clear from the question if you're open to other open source libraries that might have better 1D suport. ZBar is the primary alternative.
ZXing iphone: iPhone client + port to Objective C / C++ (QR code only)
But someone did this here
Have fun
2 questions about the open-source, zxing barcode scanner.
A) Can I customise the design of the scan overlay/viewport on the iOS? Ie: change the square/overlay/cancel button etc.
If so, how, or is there documentation?
B) Can zxing scan 1D product barcodes on iOS yet? I can't seem to find documentation on this? Otherwise what are my options for scanning both QR codes and barcodes with the iOS?
Thank you.
Martin
Yes, you can make the source code do whatever you want, as it's open source. You can certainly customize what it looks like.
Yes, most of the 1D scanning code has been ported to C++ in this project. You can enable and use it.
Hi folks just a quick question, how do I read non-QR codes with zxing? I am setting the ZXingWidgetController to 1D mode, and am using a MultiFormatUPCEANReader however the barcodes just won't scan. Any suggestions?
However, someone did it: https://github.com/TheLevelUp/ZXingObjC
According to their site, only QR was ported to iPhone.
http://code.google.com/p/zxing/
iphone: iPhone client + port to Objective C / C++ (QR code only)
As Lou says, zxing only support QR codes on iPhone.
A better bet is to use the alternative library ZBar, which supports EAN/UPC and is available here:
http://zbar.sourceforge.net/iphone/index.html