qr method
Draw QR Code
Implementation
qr(String data, {int qrSize = 150, PrintAlign align = PrintAlign.center}) {
final qr = QrCode.fromData(
data: data,
errorCorrectLevel: QrErrorCorrectLevel.M,
);
final qrImage = QrImage(qr);
final drawQrImage = img.Image(width: qrSize, height: qrSize);
fill(drawQrImage, color: ColorUint1.rgba(255, 255, 255, 255));
final moduleCount = qrImage.moduleCount;
final pixelSize = (qrSize / moduleCount).floor();
for (int y = 0; y < moduleCount; y++) {
for (int x = 0; x < moduleCount; x++) {
final isDark = qrImage.isDark(x, y);
final color = ColorUint1.rgba(0, 0, 0, 255);
if (isDark) {
for (int dy = 0; dy < pixelSize; dy++) {
for (int dx = 0; dx < pixelSize; dx++) {
final px = x * pixelSize + dx;
final py = y * pixelSize + dy;
if (px < drawQrImage.width && py < drawQrImage.height) {
drawQrImage.setPixel(px, py, color);
}
}
}
}
}
}
image(drawQrImage, align: align, width: qrSize, height: qrSize);
}