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

A Simple Address Book Program in Python with GUI

A Simple Address Book Program in Python with GUI An address book is a collection of contact information for individuals and organizations. This information can include names, addresses, phone numbers, email addresses, and other details. A program that allows you to manage your address book is a great tool for keeping track of your contacts. In this article, we'll show you how to create a simple address book program in Python and display the GUI using the required libraries. In this article, we will be covering how to create a simple address book program in Python with a GUI. The GUI (graphical user interface) is built using the tkinter library in Python, which is the standard GUI library for Python. The address book program allows you to add contacts, view contacts, and store their information such as name, phone number, email, and address. The program uses tkinter widgets such as Entry, Text, Button, Label, and Listbox to build the interface. Before diving into the code, let's...

Building an Art Gallery Program in Python

Building an Art Gallery Program in Python As an art lover, you may have considered creating a program to manage your favorite art pieces and display them in a virtual art gallery. This program can help you keep track of the details of each piece, including the image, description, and price. In this article, we will go through the process of building an art gallery program using Python and several libraries, including Tkinter, Pillow, and Pandas. Importing Necessary Libraries Before we start building our program, we need to import the libraries that we will be using. Tkinter will be used for creating the GUI, Pillow for handling image processing, and Pandas for data management. Creating the Art Gallery Class Next, we create a class for the art gallery program and initialize the necessary variables, such as the list of art pieces, their images, descriptions, and prices. We will also define the main window and its features, such as buttons for adding, editing, and removing art pieces, and...

Build an AI-Powered Task Management System with OpenAI and Pinecone APIs

AI-Powered Task Management System with Python and OpenAI: A Pared-Down Version of Task-Driven Autonomous Agent If you're looking for a Python script that demonstrates an AI-powered task management system, look no further than BabyAGI. This script utilizes the APIs of OpenAI and Pinecone to prioritize, create, and execute tasks based on a predefined objective and the result of previous tasks. Build an AI-Powered Task Management System with OpenAI and Pinecone APIs The main idea behind BabyAGI is that it takes the result of previous tasks and creates new ones based on the objective using OpenAI's natural language processing (NLP) capabilities. Pinecone is then used to store and retrieve task results for context. Although it's a pared-down version of the original Task-Driven Autonomous Agent, it still packs a punch in terms of its functionality.  How It Works The script works by running an infinite loop that goes through the following steps: Pull the first task from the task l...

Now on Google News!

We have some exciting news to share with you!  Our website is now listed on Google News, which means that our content will reach a wider audience and more potential customers.  Google News Logo Google News is a platform that aggregates news from various sources and displays them according to the user's preferences and interests. Being listed on Google News is a great achievement for us, as it shows that our website meets the high standards of quality and relevance that Google requires. We are proud of our work and we hope that you will enjoy reading our articles and finding out more about our products and services.  Siri Sarah LLC on Google News If you haven't already, you can subscribe to our website on Google News by following these simple steps: - Open the Google News app on your device or go to news.google.com on your browser. - Search for our website name in the search bar. - Tap or click on the "Follow" button next to our website logo. That's it! You will no...