Я хочу преобразовать существующий C # QRCodeEncoder
код Java. При генерации QR-кодов в C # метод принимает параметры cardNumber
, width
и length
и возвращает QR-код в виде строки. Подпись должна оставаться прежней. Я изучил библиотеку ZXing, но не смог найти подходящий метод. Какую библиотеку мне следует использовать при конвертации в Java?
код C #
private static string generateQRCode(string cardNumber, int width, int height) {
string result = "";
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
int scale = 8;
try
{
if (width / 22 > 8)
scale = width / 22;
}
catch { }
qrCodeEncoder.QRCodeScale = scale;
int version = 3;
qrCodeEncoder.QRCodeVersion = version;
string errorCorrect = "M";
if (errorCorrect == "L")
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
else if (errorCorrect == "M")
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
else if (errorCorrect == "Q")
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q;
else if (errorCorrect == "H")
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;
try
{
// Convert the image to byte[]
MemoryStream stream = new MemoryStream();
qrCodeEncoder.Encode(cardNumber).Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] imageBytes = stream.ToArray();
// Convert byte[] to Base64 String
result = Convert.ToBase64String(imageBytes);
}
catch (Exception ex) { }
return result;
}