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

Bing's Image creator vs MidJourney AI vs Stable Diffusion

Microsoft's Bing has recently launched a new AI-based image creation tool called Bing Image Creator. With this new tool, users can turn words into images to express their imagination, providing access to infinite image possibilities right from within Bing. The tool is created by OpenAI's DALL-E to generate pictures based on text prompts. Image generated by MidJourney AI Using the Bing Image Creator is simple and straightforward. Users can type in a word or phrase and Bing will generate an image based on the text entered. The tool is similar to other text-to-image generators like DALL-E and Stable. The images created by the Bing Image Creator can be used for a wide range of purposes, including vivid dreams, birthday invitations, and new concept proposals. The launch of Bing's Image Creator has garnered attention from the tech community, with many praising its innovative use of AI. However, some have also raised concerns about the potential misuse of the tool, such as creatin...

Unlocking the Value of Free Online Courses from Reputable Universities and Top Organizations

Learn about professional development, personal growth, and accessibility. In today's fast-paced world, continuous learning is vital for personal and professional growth. While traditional education can be costly and time-consuming, online learning has made it possible for individuals to acquire knowledge and skills at their own pace and convenience. In this article, we will explore the value of free courses available online from reputable universities and organizations like Google, Microsoft, Amazon, Meta, and others. What are Free Online Courses? Free online courses are non-credit courses that individuals can access and complete at their own pace. They are offered by reputable universities and organizations, and the courses are often taught by the same faculty who teach on-campus courses. The courses can range from introductory to advanced levels, and they cover various subjects like computer science, business, engineering, humanities, and many others. Reputable Universities and O...

Python Tutorial Chapter #2: Basic Data Types

In Python, there are several built-in data types that you can use to store and manipulate data. In this tutorial, we will cover the following data types: Python Tutorial Chapter #2: Basic Data Types Integers: Integers are whole numbers that can be positive, negative, or zero. In Python, you can create an integer by assigning an integer value to a variable. For example: Floats: Floats are numbers with decimal points. In Python, you can create a float by assigning a float value to a variable. For example: Strings: Strings are sequences of characters. In Python, you can create a string by enclosing a sequence of characters in quotation marks. You can use single quotes or double quotes, but you must use the same type of quotes to start and end the string. For example: Lists: Lists are ordered collections of items. In Python, you can create a list by enclosing a comma-separated list of items in square brackets. Lists can contain items of any data type, and the items do not have to be of the...

Living a Joyful Life on a Budget: Books to Inspire and Guide You

Living a Joyful Life on a Budget: Books to Inspire and Guide You Money can be a significant source of stress and worry for many people, especially when you are struggling to make ends meet. The pressure to pay off debts or keep up with the expenses of daily living can leave you feeling drained and overwhelmed. However, it is possible to find joy and fulfillment in life, even when you have a limited income. In this article, we will explore some of the best books that offer insights and strategies for living a joyful life on a budget. "The Art of Frugal Hedonism" by Annie Raser-Rowland and Adam Grubb If you are looking for a book that will inspire you to find pleasure in the simple things in life, "The Art of Frugal Hedonism" is an excellent place to start. This book is a celebration of the joys of frugal living, and it offers practical tips and suggestions for how to live a rich and fulfilling life without spending a lot of money. "The Art of Frugal Hedonism...

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 ...