How to manipulate image using TKinter

share link

by shivanisanju03 dot icon Updated: Jul 13, 2023

technology logo
technology logo

Solution Kit Solution Kit  

Tkinter is a popular Python library for creating graphical user interfaces (GUIs). At the same time, Tkinter does not provide built-in image resizing capabilities. But when combined with PIL or OpenCV to perform image resizing tasks.  


Image resizing is changing the image dimensions while preserving its aspect ratio. The resized image can be larger or smaller than the original, per the requirements. The Tkinter library can create a GUI application. It incorporates image resizing functionality. It allows selecting images, specifying the desired dimensions, and applying the resizing operation.  


When using the tkinter library in Python, you can resize various types of images. It includes images of text, images of shapes, and images of other images. The tkinter library provides the PhotoImage class. It handles images in Tkinter applications.  


Here are the different images that can be resized using image-resizing techniques:  

Images of Text:  

These are images that contain rendered text. Using PIL or other image manipulation libraries, you can create an image with text. Once you have the image, you can use tkinter to resize it by manipulating its dimensions.  

Images of Shapes:  

These images contain circles, rectangles, polygons, or other custom shapes. You can create such images using PIL or drawing on a tkinter canvas. Like images of text, you can resize these by adjusting their dimensions using a tkinter.  

Images of Images:  

These are images obtained by capturing or loading existing image files. You can use the PIL library or the PhotoImage class in tkinter to load and display these images. Once you load the image, you can resize it using tkinter by manipulating its dimensions.  



This creates an image object which Tkinter understands. It can be used with other GUI elements like Canvas or Labels. Even though it is a tutorial on the Tkinter PhotoImage class, I want to show you some other options. To create the application, we will use only four lines of code.  


You can set the size of the Tkinter window by calling the geometry() function on the window. You can do so with width and height string passed as argument. We should import the Image and ImageTk from the Python Pillow package to display an image. The pillow is a Python Imaging Library (PIL) fork that supports Python 3 and many image formats.  

Fig: Preview of the output that you will get on running this code from your IDE



Follow the steps carefully to get the output easily..

  1. Open the code snippet link ,ignore first part of the given code and click copy button given in second part of the code snippet and paste it in your IDE
  2. Install tkinter using pip command : 'pip install tk'
  3. Run the file to generate the output.

I hope you found this useful. I have added version information in the following sections.

I found this code snippet by searching for 'Updating image in tkinter window with newly made images' in kandi. You can try any such use case!

Environment tested

I tested this solution in the following versions. Be mindful of changes when working with other versions.

  1. The solution is created in PyCharm 2022.3.3 (Community Edition)
  2. The solution is tested on Python 3.11.1.

Using this solution, we are able to understand how to manipulate image using Tkinter.with simple steps. This process also facilities an easy way to use, hassle-free method to create a hands-on working version of code which would help us how to manipulate image using Tkinter.

Dependent Library

Tkinter-Designerby ParthJadhav

Python doticonstar image 5885 doticonVersion:v1.0.7doticon
License: Permissive (BSD-3-Clause)

An easy and fast way to create a Python GUI 🐍


            Tkinter-Designerby ParthJadhav

            Python doticon star image 5885 doticonVersion:v1.0.7doticon License: Permissive (BSD-3-Clause)

            An easy and fast way to create a Python GUI 🐍

                      You can search for any dependent libraries like 'Tkinter'


                      1. What is the Tkinter PhotoImage class, and how does it work?  

                      The Tkinter PhotoImage class is a part of the Tkinter library in Python. It provides a way to display images within Tkinter graphical user interface applications. It allows you to create and manipulate image objects. It can be used in various Tkinter widgets such as labels, buttons, and canvases.  


                      The PhotoImage class is used for displaying and manipulating bitmap image formats. It does not support all image formats, such as JPEG or PNG, out of the box. But you can use external libraries like PIL (Python Imaging Library) or Pillow. It helps open and convert images to compatible formats before using them.  


                      2. What is the Python Imaging Library (PIL), and why is it important for resizing images?  

                      Python Imaging Library is a popular open-source library for handling and manipulating images. But it's worth noting, as of my knowledge cutoff in September 2021, PIL has yet to be maintained since 2011. Its fork, "Pillow," has emerged as a more maintained and feature-rich alternative to PIL.  


                      Pillow (PIL) provides various functionalities for working with images. It includes opening, saving, modifying, and displaying images in various formats. It supports common image file formats such as JPEG, PNG, BMP, and GIF.  


                      3. What is the best way to set the size of my output image after resizing it with Tkinter?  

                      You can set the output image size when resizing an image with a tkinter. You can specify the desired dimensions using the parameters of the resize () method.  


                      4. Can NumPy be part of my tkinter application for resizing images?  

                      Yes, NumPy can be used as part of a Tkinter application for resizing images. NumPy is a powerful library for numerical computations in Python. It provides efficient array operations. It can manipulate and process image data, including resizing.  


                      5. Are there any advantages or disadvantages when resizing PNG images using tkinter?  

                      When resizing PNG images, there are some advantages and disadvantages to consider:  


                      • Simplicity.  
                      • Integration.  


                      • Lossy Compression.  
                      • Limited Functionality. 



                      1. For any support on kandi solution kits, please use the chat
                      2. For further learning resources, visit the Open Weaver Community learning page.

                      See similar Kits and Libraries