diff --git a/Image Downloader GUI/ReadMe.md b/Image Downloader GUI/ReadMe.md new file mode 100644 index 0000000000..f93354bc70 --- /dev/null +++ b/Image Downloader GUI/ReadMe.md @@ -0,0 +1,12 @@ +Description: +A graphical user interface (GUI) application that enables users to download images from the internet. +Users can input an image URL, provide a desired image name, and specify a folder path for saving the downloaded image. + +Requirements: +pip install tkinter +pip install requests + + +Output: + +![Screenshot 2023-08-10 051845](https://github.com/smty2018/Amazing-Python-Scripts/assets/74114936/28b76433-5c66-4781-a447-88cc7fd9e712) diff --git a/Image Downloader GUI/dog.jpg b/Image Downloader GUI/dog.jpg new file mode 100644 index 0000000000..eb60d26c07 Binary files /dev/null and b/Image Downloader GUI/dog.jpg differ diff --git a/Image Downloader GUI/main.py b/Image Downloader GUI/main.py new file mode 100644 index 0000000000..ec9ee7a5ef --- /dev/null +++ b/Image Downloader GUI/main.py @@ -0,0 +1,66 @@ +import tkinter as tk +from tkinter import messagebox +import os +import requests + +def get_ext(url: str) -> str | None: + exts = [".png", ".jpeg", ".jpg"] + for ext in exts: + if ext in url: + return ext + return None + +def download_img(): + u = url_ent.get() + n = name_ent.get() + f = folder_ent.get() + + if not u or not n or not f: + messagebox.showerror("Error", "Please fill in all fields.") + return + + ext = get_ext(u) + if not ext: + messagebox.showerror("Error", "Invalid image URL.") + return + + img_path = os.path.join(f, f"{n}{ext}") + + if os.path.isfile(img_path): + messagebox.showerror("Error", "A file with the same name already exists.") + return + + try: + img_content = requests.get(u).content + with open(img_path, "wb") as handler: + handler.write(img_content) + messagebox.showinfo("Success", f"Image downloaded to:\n{img_path}") + except Exception as e: + messagebox.showerror("Error", f"An error occurred: {e}") + +root = tk.Tk() +root.title("Image Downloader") +root.configure(bg="#1e1e1e") + +ul = tk.Label(root, text="Image URL:", bg="#1e1e1e", fg="white") +ul.pack(pady=5) + +url_ent = tk.Entry(root, width=50) +url_ent.pack(pady=5) + +nl = tk.Label(root, text="Image Name:", bg="#1e1e1e", fg="white") +nl.pack(pady=5) + +name_ent = tk.Entry(root, width=50) +name_ent.pack(pady=5) + +fl = tk.Label(root, text="Folder Path:", bg="#1e1e1e", fg="white") +fl.pack(pady=5) + +folder_ent = tk.Entry(root, width=50) +folder_ent.pack(pady=5) + +dl_btn = tk.Button(root, text="Download", command=download_img, bg="#303030", fg="white") +dl_btn.pack(pady=10) + +root.mainloop()