I am creating a QR code generator program in JAVA using ZXING library. The program is
import com.google.zxing.BarcodeFormat;
import com.google.zxing.WriterExcept
Never used this library myself, but reading the errormessage I would assume that you have to problem that you want to store byte in bits. The problem will be that a byte is build up by multiple bits so you cannot represent a byte via only one bit.
Store your encode data into an ByteMatrix and then read this post:
to finish things off.
According to the javadoc here and the source code here, the QRCodeWriter.encode
methods return a BitMatrix
, not a ByteMatrix
. So, that compilation error should not occur.
Unless ....
... you are using some version1 of the com.google.zxing
library that is incompatible with those javadocs. Check where you got your zxing JAR file from.
Despite searching, I haven't been able to find the version with this incompatibility. However:
I note that the official library has been forked many times on GitHub, and any one of those could be the source of the incompatibility.
I found this which clearly a fork, and clearly has tweaked encode
. However, the people who did this have at least had the good sense to change the package name!
I don't know if this is relevant, but it appears that in the C# version of this API, the QRCodeWriter.encode
method does return a ByteMatrix
; see here for evidence. Maybe you've stumbled across someone's misguided attempt to "fix" the Java API to match the C# API.
I got the same Issues and i solve it by downloading compatible zxing-javase.jar and zxing
http://www.java2s.com/Code/Jar/z/Downloadzxingjavasejar.htm http://www.java2s.com/Code/Jar/z/Downloadzxingjar.htm
the latest version are compatible and use ByteMatrix not BitMatrix. download them from original www.java2s.com