<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pro QR Generator & Downloader</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js"></script>
<style>
body {
font-family: 'Segoe UI', sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background: #eef2f3;
}
.container {
background: white;
padding: 2.5rem;
border-radius: 15px;
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
text-align: center;
width: 380px;
}
h2 { color: #2c3e50; margin-top: 0; }
input {
width: 100%;
padding: 12px;
margin: 15px 0;
border: 2px solid #ddd;
border-radius: 8px;
box-sizing: border-box;
outline: none;
transition: border-color 0.3s;
}
input:focus { border-color: #3498db; }
.btn-group { display: flex; gap: 10px; }
button {
flex: 1;
padding: 12px;
border: none;
border-radius: 8px;
cursor: pointer;
font-weight: bold;
transition: 0.3s;
}
.gen-btn { background: #3498db; color: white; }
.gen-btn:hover { background: #2980b9; }
.down-btn { background: #2ecc71; color: white; display: none; }
.down-btn:hover { background: #27ae60; }
#qrcode {
margin-top: 25px;
display: flex;
justify-content: center;
}
canvas { border: 1px solid #eee; }
</style>
</head>
<body>
<div class="container">
<h2>QR Generator</h2>
<input type="text" id="text-input" placeholder="Paste link or text...">
<div class="btn-group">
<button class="gen-btn" onclick="generateQR()">Generate</button>
<button id="download-btn" class="down-btn" onclick="downloadQR()">Download PNG</button>
</div>
<div id="qrcode"></div>
</div>
<script>
const qrContainer = document.getElementById("qrcode");
const downloadBtn = document.getElementById("download-btn");
const qrcode = new QRCode(qrContainer, {
width: 250,
height: 250,
colorDark : "#000000",
colorLight : "#ffffff",
correctLevel : QRCode.CorrectLevel.H
});
function generateQR() {
const input = document.getElementById("text-input").value;
if (input.trim() === "") {
alert("Please enter something!");
return;
}
qrcode.makeCode(input);
// إظهار زر التحميل بعد توليد الكود
downloadBtn.style.display = "block";
}
function downloadQR() {
// العثور على عنصر الصورة أو الـ Canvas الذي أنشأته المكتبة
const img = qrContainer.querySelector("img");
const canvas = qrContainer.querySelector("canvas");
// استخراج الرابط (Data URL)
const imageSrc = img ? img.src : canvas.toDataURL("image/png");
// إنشاء رابط وهمي للتحميل
const link = document.createElement("a");
link.href = imageSrc;
link.download = "my-qrcode.png";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
</script>
</body>
</html>