|
import streamlit as st |
|
from PIL import Image |
|
from io import BytesIO |
|
|
|
def main(): |
|
st.title("WEB to PNG Converter") |
|
|
|
|
|
uploaded_file = st.file_uploader("Choose an image file", type=["webp"]) |
|
|
|
if uploaded_file is not None: |
|
st.image(uploaded_file, caption="Uploaded Image", use_column_width=True) |
|
|
|
|
|
converted_image = convert_to_png(uploaded_file) |
|
|
|
|
|
st.image(converted_image, caption="Converted Image", use_column_width=True) |
|
|
|
|
|
download_link(converted_image, "Download Converted Image") |
|
|
|
def convert_to_png(image_file): |
|
|
|
img = Image.open(image_file) |
|
|
|
|
|
img_png = img.convert("RGBA") |
|
|
|
return img_png |
|
|
|
def download_link(image, text): |
|
|
|
with st.spinner("Converting..."): |
|
img_bytes = BytesIO() |
|
image.save(img_bytes, format="PNG") |
|
|
|
st.download_button( |
|
label=text, |
|
data=img_bytes.getvalue(), |
|
file_name="converted_image.png", |
|
key="download_button" |
|
) |
|
|
|
if __name__ == "__main__": |
|
main() |
|
|