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.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Path;
public class QR_Gen {
private static final String QR_CODE_IMAGE_PATH = "./MyCode.png";
private static void generateQRCodeImage(String text, int width, int
height, String filePath) throws WriterException, IOException {
QRCodeWriter qrCodeWriter = new QRCodeWriter();
BitMatrix bitMatrix = qrCodeWriter.encode(text,
BarcodeFormat.QR_CODE, width, height);
Path path = FileSystems.getDefault().getPath(filePath);
MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path);
}
public static void main(String[] args) {
try {
generateQRCodeImage("This is my first QR Code", 350, 350, QR_CODE_IMAGE_PATH);
System.out.println("QR Code generated successfully");
} catch (WriterException e) {
System.out.println("Could not generate QR Code, WriterException :: " + e.getMessage());
} catch (IOException e) {
System.out.println("Could not generate QR Code, IOException :: " + e.getMessage());
}
}
}
While compiling this program i'm getting a Type Mismatch Error,
Type mismatch: cannot convert from ByteMatrix to BitMatrix
in this line
BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);
Please help!!!
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.