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

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

Step by Step Tutorial - Python

 We have uploaded our course material for Python on Github. https://github.com/SiriSarah/Python

How LinkedIn is using Microsoft's chat for creating technical articles

LinkedIn is a professional networking platform that connects millions of users across various industries and fields. One of the main features of LinkedIn is the ability to share and discover content that is relevant to your career and interests. However, creating high-quality content can be challenging, especially for technical topics that require specialized knowledge and skills. How LinkedIn is using Microsoft's chat for creating technical articles That's why LinkedIn has partnered with Microsoft to leverage its chat mode, a powerful tool that can help users generate content such as articles, reports, presentations, and more. Microsoft's chat mode is a conversational interface that allows users to interact with Bing, the web search engine developed by Microsoft. Users can ask Bing questions, request information, or give commands in natural language, and Bing will respond with appropriate answers, suggestions, or actions. How LinkedIn is using Microsoft's chat for cre...

What we need to know about ChatGPT-4?

What we need to know about ChatGPT-4? ChatGPT-4 is a new chatbot application that uses the latest language model from OpenAI, GPT-4, to generate natural and engaging conversations with users. It claims to be more accurate, creative and collaborative than its predecessor, ChatGPT-3.5, and 40% more likely to produce factual responses. But what exactly is GPT-4 and how does it work? And how can we use ChatGPT-4 now? Here are some answers to these questions. What is GPT-4? GPT-4 stands for Generative Pre-trained Transformer 4, a deep learning technology that uses artificial neural networks to write like a human. It is a successor of GPT-3.5, which was released by OpenAI in 2022 and powered ChatGPT until recently. GPT-4 expands on the capabilities of GPT-3.5 by being multimodal, meaning that it can "see", accepting for the first time both images and text as inputs. This allows it to generate more relevant and diverse responses based on the context of the conversation. GPT-4 also h...

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