AI Picture Generator
/* Google Font */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap');
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Poppins', sans-serif;
}
body {
background: linear-gradient(135deg, #8E44AD, #3498DB);
color: white;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
text-align: center;
padding: 20px;
}
.container {
background: rgba(255, 255, 255, 0.2);
padding: 20px;
border-radius: 12px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
max-width: 600px;
width: 100%;
}
h1 {
margin-bottom: 15px;
}
input {
width: 100%;
padding: 10px;
border: none;
border-radius: 5px;
font-size: 16px;
outline: none;
background: #34495E;
color: white;
}
button {
width: 100%;
padding: 10px;
margin: 10px 0;
border: none;
border-radius: 5px;
font-size: 16px;
cursor: pointer;
transition: 0.3s;
background: #2ECC71;
color: white;
}
button:hover {
opacity: 0.8;
}
.loading {
display: none;
font-size: 16px;
color: yellow;
margin-top: 10px;
}
#imageContainer {
margin-top: 15px;
}
img {
max-width: 100%;
border-radius: 10px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}
const apiKey = "YOUR_OPENAI_API_KEY"; // Replace with a valid API key
async function generateImage() {
let prompt = document.getElementById("promptInput").value;
let loading = document.getElementById("loading");
let imageContainer = document.getElementById("imageContainer");
let downloadBtn = document.getElementById("downloadBtn");
if (!prompt) {
alert("Please enter a description!");
return;
}
loading.style.display = "block";
imageContainer.innerHTML = "";
downloadBtn.style.display = "none";
try {
const response = await fetch("https://api.openai.com/v1/images/generations", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${apiKey}`
},
body: JSON.stringify({
prompt: prompt,
n: 1,
size: "512x512"
})
});
const data = await response.json();
let imageUrl = data.data[0].url;
let imgElement = document.createElement("img");
imgElement.src = imageUrl;
imageContainer.appendChild(imgElement);
downloadBtn.style.display = "block";
downloadBtn.onclick = () => downloadImage(imageUrl);
} catch (error) {
alert("Error generating image. Please try again.");
} finally {
loading.style.display = "none";
}
}
function downloadImage(imageUrl) {
let link = document.createElement("a");
link.href = imageUrl;
link.download = "AI-Generated-Image.png";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}