Как создать 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