Python Image Viewer – Where Images Meet Innovation

Master Python with 70+ Hands-on Projects and Get Job-ready - Learn Python

With the help of a forward and backward button, users can navigate between images in the Image Viewer App. Let’s follow a few simple steps to construct an Image Viewer Project in Python.

About Python Image Viewer

In this project, we’re going to create a Tkinter module-based image viewer project. The PIL module will also be used to perform operations on the images. The user can navigate through a list of images using the app.

What is Tkinter?

Python offers various utilities to design the GUI wiz Graphical User Interface, and one such utility is Tkinter which is most commonly used. It is one of the fastest and easiest ways to build GUI applications. Moreover, Tkinter is cross-platform. As a result, the same code works on macOS, Windows, and Linux.

Prerequisites for Image Viewer using Python

  • Basic knowledge of Python Programming Language and how function is defined in it.
  • How the window is made in Tkinter GUI , and how the frame is made in it.

Download Python Image Viewer Code

Please download the source code for python image viewer project from the following link: Python Image Viewer Project Code 

Steps to Create the Python Image Viewer Project

Following are the steps for developing the Image Viewer project:

Step 1: Importing the necessary modules

To use Tkinter, we need to import the Tkinter module. We are also going to import the zipfile and filedialog module.

Code

#import packages
from tkinter import *
import tkinter as tk
from PIL import ImageTk, Image

Step 2: Making a window for our project

This code sets the title of the window as ‘DataFlair Image Viewer Appr’, and sets the dimensions as resizable.

Code

#creating window
root = tk.Tk()
root.title("DataFlair Image Viewer App")
root.resizable()

Step 3: Functions

This function takes images to be displayed in the form of a list and runs a loop for them on that list so that users can navigate through their images.

Code

#creating label to display images 
j = 0
img_label = Label(frame, image=List_img[j])
img_label.pack()
#function for next image
def next_img():
   global j
   j = j + 1
   try:
       img_label.config(image=List_img[j])
   except:
       j = -1
       next_img()
#function for prev image
def prev():
   global j
   j = j - 1
   try:
       img_label.config(image=List_img[j])
   except:
       j = 0
       prev()

Explanation

def next_img() is used for the next image, and def prev() for the previous image. def next_img() “ j = j + 1” is used to move forward in the list, and in def prev() “j = j – 1” to move backward in the list of images by configuring the label (img_label) we made to display images. The ‘except’ condition in both functions is used if there is no next or previous image, respectively, in the list.

Step 4: Making a frame to display images

We make a frame and in that frame a label to display images, and we also make a list of images through which we can navigate.

Code

#fame to display images
frame = tk.Frame(root)
frame.pack(pady=10)


img_1 = ImageTk.PhotoImage(Image.open("1.jpg"))
img_2 = ImageTk.PhotoImage(Image.open("2.jpg"))
img_3 = ImageTk.PhotoImage(Image.open("3.png"))
img_4 = ImageTk.PhotoImage(Image.open("4.png"))
List_img = [img_1, img_2, img_3, img_4]


j = 0
img_label = Label(frame, image=List_img[j])
img_label.pack()

Step 5: Making Frames and Mapping the Buttons to Their Functionalities

We make two frames, and in one frame we make two buttons, Next and Previous, to navigate in the list of images, and in the second frame we make an exit button to exit the app.

Code

#creating frame for previous, next, and exit button
frame1 = tk.Frame(root)
frame1.pack(pady=5)
Prev = tk.Button(frame1, text="Previous", command=prev)
Prev.pack(side="left", padx=10)
Next = tk.Button(frame1, text="Next", command=next_img)
Next.pack(side="right", padx=10)


frame2 = tk.Frame(root)
frame2.pack(pady=5)
Exit = tk.Button(frame2, text="Exit", command=root.quit)
Exit.pack(side="bottom")


root.mainloop()

Full Code

#import packages
from tkinter import *
import tkinter as tk
from PIL import ImageTk, Image
#creating window
root = tk.Tk()
root.title("DataFlair Image Viewer App")
root.resizable()
#fame to display images
frame = tk.Frame(root)
frame.pack(pady=10)


img_1 = ImageTk.PhotoImage(Image.open("1.jpg"))
img_2 = ImageTk.PhotoImage(Image.open("2.jpg"))
img_3 = ImageTk.PhotoImage(Image.open("3.png"))
img_4 = ImageTk.PhotoImage(Image.open("4.png"))
List_img = [img_1, img_2, img_3, img_4]
#creating label to display images 
j = 0
img_label = Label(frame, image=List_img[j])
img_label.pack()


#function for next image
def next_img():
   global j
   j = j + 1
   try:
       img_label.config(image=List_img[j])
   except:
       j = -1
       next_img()


#function for prev image
def prev():
   global j
   j = j - 1
   try:
       img_label.config(image=List_img[j])
   except:
       j = 0
       prev()


#creating frame for previous, next, and exit button
frame1 = tk.Frame(root)
frame1.pack(pady=5)
Prev = tk.Button(frame1, text="Previous", command=prev)
Prev.pack(side="left", padx=10)
Next = tk.Button(frame1, text="Next", command=next_img)
Next.pack(side="right", padx=10)


frame2 = tk.Frame(root)
frame2.pack(pady=5)
Exit = tk.Button(frame2, text="Exit", command=root.quit)
Exit.pack(side="bottom")


root.mainloop()

Python Image Viewer Output

python image viewer output

Summary

We have successfully created an Image Viewer App using Python Tkinter GUI. Now one can easily navigate through their images. This project provides practical exposure to various python libraries such as Tkinter to make a nice GUI, ImageTk, and image to open the images and display them.

We work very hard to provide you quality material
Could you take 15 seconds and share your happy experience on Google

courses
Image

DataFlair Team

DataFlair Team provides high-impact content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. We make complex concepts easy to grasp, helping learners of all levels succeed in their tech careers.

Leave a Reply

Your email address will not be published. Required fields are marked *