Skip to main content

How to Create a Simple Image Viewer with Python?

How to Create a Simple Image Viewer with Python?
How to Create a Simple Image Viewer with Python?

In this article, we will go through the steps of creating a simple image viewer app using Python's GUI library Tkinter. This app allows the user to navigate through a folder of images, viewing each one in turn.

Introduction

Have you ever wanted to view a folder of images in an organized manner? Well, look no further! With a little bit of Python code, you can create a simple image viewer that does exactly that. We'll be using Tkinter, a popular Python GUI library, to make this app.

Building the App

The first step in building the image viewer app is to import the required libraries and create a GUI window using Tkinter. You'll then need to specify the dimensions of the window, as well as its title, font, and other visual elements.

Once the window is set up, you can start adding widgets to it. In this case, we'll be using label widgets to display the images. To navigate through the images, we'll add buttons for "Next" and "Previous" navigation. The code will load the next or previous image in the folder based on the button that is pressed.

Adding Functionality

Next, we'll add the functionality to our image viewer. This includes defining the folder that contains the images, parsing the values of the images, and loading each image in turn. We'll also specify what happens when the "Next" and "Previous" buttons are pressed.

The code for this step involves a bit of logic, but don't worry, it's not too difficult. Essentially, the code checks the current location of the image within the folder, and either increments or decrements it depending on the button that was pressed. The code then loads the image at the new location and displays it in the window.

Finishing Up

Finally, we'll add the finishing touches to our image viewer app. This includes positioning the "Next" and "Previous" buttons, as well as adding a "Close" button to close the window.

With these few simple steps, you now have a functional image viewer app built using Python and Tkinter. You can now easily view folders of images in an organized and user-friendly manner.

Food for Thought

Building a simple image viewer is just the beginning of what you can do with Python and Tkinter. There are many more features and capabilities that you can add to this app, such as zooming in on images, adding a thumbnail view, and much more. The possibilities are endless, and the best part is, you can build it all with just a little bit of Python code. So go ahead and try it out for yourself!

Example

Here is an example:

import tkinter as tk
from tkinter import filedialog
from tkinter import messagebox
from PIL import Image, ImageTk
import os

class ImageViewer:
    def __init__(self, master):
        self.master = master
        self.master.title("Python Simple Image Viewer")
        self.master.geometry("600x600")

        self.top_frame = tk.Frame(self.master, width=600, bd=1, relief="solid")
        self.top_frame.pack(side="top", fill="both", expand="yes")

        self.mid_frame = tk.Frame(self.master, width=300, height=200, bd=1, relief="solid")
        self.mid_frame.pack(side="top")

        self.images = []
        self.location = 0

        self.lbl_title = tk.Label(self.top_frame, text="Label", font=("Arial", 20))
        self.lbl_title.pack()

        self.forward = tk.Button(self.top_frame, text="Forward", command=lambda: self.load_image(1))
        self.forward.pack(side="left")

        self.back = tk.Button(self.top_frame, text="Back", command=lambda: self.load_image(-1))
        self.back.pack(side="left")

        self.parse_folder()

    def parse_folder(self):
        file_path = filedialog.askdirectory()
        if not file_path:
            messagebox.showerror("Error", "No folder selected.")
            return

        try:
            for file in os.listdir(file_path):
                if file.endswith(".jpg") or file.endswith(".png"):
                    self.images.append(os.path.join(file_path, file))
        except Exception as e:
            messagebox.showerror("Error", str(e))
            return

        if not self.images:
            messagebox.showerror("Error", "No images found in the selected folder.")
            return

        self.load_image(0)

    def load_image(self, direction):
        self.location += direction
        if self.location >= len(self.images):
            self.location = 0
        elif self.location < 0:
            self.location = len(self.images) - 1

        image = Image.open(self.images[self.location])
        image = image.resize((300, 200), Image.ANTIALIAS)
        image = ImageTk.PhotoImage(image)

        self.lbl_title.config(image=image)
        self.lbl_title.image = image

if __name__ == "__main__":
    root = tk.Tk()
    viewer = ImageViewer(root)
    root.mainloop() 

Popular posts from this blog

Something Big is Coming for Little Coders! 🚀

 Get ready, future tech wizards! We are incredibly excited to announce that SpriteScouts  is coming soon! SpriteScouts SpriteScouts  is a brand-new app designed specifically to teach kids the fundamentals of programming in a fun, interactive, and easy-to-understand way. Whether they are just starting out or looking to build their first game,  SpriteScouts  is here to turn screen time into skill time. What to expect: Fun coding challenges Interactive lessons Creative projects We are working hard to get everything ready for you. Keep an eye on this space because a Beta link will be available very soon! You won't want to miss the chance to be among the first to try it out. Stay tuned for updates! 💻✨

Creating an Advanced To-Do List Program in Python with GUI and Database Interaction

Creating an Advanced To-Do List Program in Python with GUI and Database Interaction This program creates a GUI with Tkinter library, with the help of which you can create, view, update, delete and mark tasks as complete with the help of buttons. The program also uses the SQLite3 library to interact with the database and stores the tasks in a database file named "todo.db". The GUI also provides functionality to filter the tasks by due date. Please note that this program is just an example, you can change it according to your needs and add more functionality.

Are you interested in learning SQL but don't know where to start?

Are you interested in learning SQL but don't know where to start?  Look no further than "The SQL Journey ," now available on Amazon Kindle and Google Play books store. This eBook is designed for anyone above 5th grade to learn and understand SQL. Cover page of "The SQL Journey" by Mythili Mohan SQL, or Structured Query Language, is a crucial skill for roles like Data Analysts . It allows users to manage and manipulate data stored in relational databases. By mastering SQL, you can gain valuable skills that are highly sought after in today's job market. "The SQL Journey" is a comprehensive guide that covers everything from the basics of SQL. Each chapter is filled with practical examples which are easy to understand. SQL Logo Whether you're a student, a working professional, or just someone who wants to learn a valuable skill, "The SQL Journey" is the perfect resource. It's easy to read, jargon-free, and accessible to anyone with ...

Introduction to Python Programming with David Malan

Python is a general-purpose programming language that is becoming increasingly popular for a variety of tasks, including web development, data science, and machine learning. If you're interested in learning Python, then David Malan's course on Introduction to Python Programming is a great place to start. Malan is a professor of computer science at Harvard University, and he has a knack for making complex topics easy to understand. In this course, he takes you on a journey through the basics of Python, from variables and data types to functions and control flow. He also covers some more advanced topics, such as object-oriented programming and file I/O. The course is well-structured and easy to follow, and Malan's lectures are engaging and informative. There are also plenty of exercises to help you practice what you've learned. If you're looking for a comprehensive and well-taught introduction to Python, then I highly recommend David Malan's course. Here are some ...

Risks of AI-generated Code: Google's Bard, Amazon Whisperer, and the Challenges with their New Features

Artificial intelligence (AI) has advanced so much in recent days that it is now used in various applications. Machine learning is used to teach AI systems how to learn on their own, and they are used in various industries such as healthcare, finance, and e-commerce. AI has revolutionized the way we interact with technology, and companies such as Google and Amazon have been at the forefront of AI research and development. However, with every new feature and advancement, there are bound to be issues and challenges that come with it. Google's Bard and Amazon Whisperer are two examples of AI language models that have been introduced in recent years, but they have faced some issues with their new code feature. Google's Bard Google's Bard is a language model that is designed to help people write poetry. It uses machine learning algorithms to generate verses based on the style and theme of the poem. Bard was introduced in 2021 and has since gained popularity among poetry enthusias...