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

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

📘 Unlock Your Leadership Potential for Just $7.99!

Are you ready to navigate the complexities of management and truly lead with wisdom? Leading with Wisdom We are thrilled to announce that " Leading with Wisdom: Management Insights " is now available for purchase on Amazon! Why You Need This Book: Actionable Insights : This comprehensive guide distills years of management experience into practical, easy-to-implement advice. Real-World Strategies : It offers a blend of personal anecdotes, proven strategies, and real-world examples designed for leaders at all levels. Navigate Complexity : Learn how to tackle difficult situations and lead your team to success. Limited-Time Offer! For a short time, you can get your copy of this invaluable resource for the special price of just $7.99 on Amazon. Don't miss this opportunity to invest in your leadership journey. Click here to  Order Your Copy on Amazon Today!

Exploring the World of Tech: A Month-long Hiatus Explained

Greetings, dear readers! It has been quite some time since my last post, and I owe you an explanation.  Over the past month, I embarked on an exhilarating journey into the ever-evolving realm of technology. Immersed in a sea of new updates and breakthroughs, courtesy of Meta, Google, Microsoft, Amazon, and numerous startups, I sought to expand my knowledge and bring you even more insightful content. So, without further ado, let me share with you the reasons behind my absence and the exciting discoveries that await! A Quest for Technological Enlightenment As a dedicated tech enthusiast and purveyor of knowledge, it is my responsibility to stay abreast of the latest advancements in the field. During my hiatus, I dived headfirst into a plethora of new tech updates and developments from industry giants such as Meta (formerly Facebook), Google, Microsoft, Amazon, and various promising startups. This month-long journey allowed me to explore the cutting-edge innovations and gain profound ...

Master Your Money, Keep Your Privacy: Introducing SMART Budget

Managing your finances often feels like a trade-off: you either get convenience and AI insights, or you get privacy. Usually, you have to hand over your bank login credentials and transaction history to a third-party server to get good analytics. We believe you shouldn't have to choose. We are proud to introduce SMART Budget, a revolutionary new personal finance manager that combines cutting-edge AI intelligence with a strict Local-First, Zero-Knowledge architecture in your language . 🔒 Privacy That Actually Means Privacy Most finance apps store your data on their servers. SMART Budget is different. We built it with a Zero-Knowledge Architecture. Your Data, Your Device : All your financial data is encrypted and stored locally on your device using IndexedDB. It never touches our servers. You Hold the Keys : We use a 12-word recovery phrase (similar to secure cryptocurrency wallets). This acts as your master key. Because we don't have this key, we literally cannot see your data ...

Mastering the Basics: 100 Essential Python Interview Questions for Beginners

What is Python? What are the benefits of using Python? What are the differences between Python 2 and Python 3? What is a variable in Python? How do you assign a value to a variable in Python? What are the different data types in Python? What are lists in Python? What are tuples in Python? What are dictionaries in Python? What is a function in Python? How do you define a function in Python? What is a module in Python? How do you import a module in Python? What are the built-in functions in Python? What is a class in Python? How do you define a class in Python? What is inheritance in Python? What is polymorphism in Python? What are the different types of errors in Python? What is exception handling in Python? How do you handle exceptions in Python? What is a decorator in Python? How do you use decorators in Python? What is a lambda function in Python? How do you use lambda functions in Python? What is a generator in Python? How do you use generators in Python? What is a module in Python?...