Как создать QR-код при нажатии на кнопку, сохранить его как png-изображение и предложить пользователям скачать полученный файл?
Для генерации QR-кода для строки и предложения его пользователю для скачивания, можно воспользоваться библиотекой Python под названием `qrcode`. Пример кода для создания QR-кода и его предложения пользователю для скачивания: ```python import qrcode from PIL import Image from io import BytesIO # Создаем QR-код для строки data = "Ваша строка здесь" qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4, ) qr.add_data(data) qr.make(fit=True) img = qr.make_image(fill_color="black", back_color="white") # Сохраняем QR-код как изображение PNG img_path = "./qr_code.png" img.save(img_path) # Предлагаем пользователю скачать созданный QR-код # Это может быть сделано, например, с помощью Flask и отправки файла пользователю # или простого исполнения скрипта на сервере, откуда пользователь сможет скачать QR-код print("QR-код создан и сохранен как qr_code.png") ``` После выполнения этого кода, в текущей директории будет создан файл `qr_code.png`, содержащий QR-код для указанной строки. Пользователь сможет скачать этот файл и использовать QR-код по своему усмотрению.
Вы даже не потрудились загуглить пример? Вот надо динамически создать тег a с нужными атрибутами, кликнуть по нему и удалить.
Обновлено.
И снова я за вас погуглил )) Вот так можно сгенерировать налету и скачать как картинку.
https://codepen.io/yarkovaleksei/pen/OJGOzww?edito...
Делаю для себя одностраничное приложение:
https://gitverse.ru/NeiroN/HTML/content/main/QRcod...
Пошел по пути Текст->QRcode SVG->тег img->тег canvas->тег a->сохранение
function convertPng(svg,size,name){ let canvas = document.createElement("canvas");canvas.width=size;canvas.height=size; let img = new Image();img.width=size;img.height=size; let a = document.createElement("a");a.download=name; img.onload = function() {canvas.getContext('2d').drawImage(img, 0, 0);a.href=canvas.toDataURL("image/png");a.click();img.remove();canvas.remove();a.remove()} img.src = "data:image/svg+xml,"+encodeURIComponent(svg); } convertPng(new QRCode({ content: "http://github.com/", padding: 4, width: 256, height: 256, color: "#000000", background: "#ffffff", ecl: "M", }).svg(),256,'Test.png')
Библиотека когда-то отсюда взята: https://github.com/papnkukn/qrcode-svg