How to crop a image in pillow

share link

by vsasikalabe dot icon Updated: Sep 6, 2023

technology logo
technology logo

Solution Kit Solution Kit  

PIL is the Python Imaging Library. It creates a Python interpreter with image editing ability. You can use the PIL.Image.crop() method to cut a rectangular part of any image.


Cropping is one of the most wanted operations in image processing. This is to remove unwanted portions of an image and add required features to an image. This process is widely used in web applications for uploading an image. The crop() function of the image class uses the Pillow library for cropping an image. It would help if you had a four-element tuple to find the rectangle part to crop in an image. The function gives back an image Object. The Object represents a cropped rectangle in the displayed image.


The Python Image Library provides an easy way to use the function for cropping images. Image cropping executes the same task on a large number of images. The cropping operation deletes all the details outside the rectangle part. It displays a modified image of the crop rectangle's size. The result may vary depending on the operating system and JPEG decoder.   

   

A grid of vertical and horizontal pixels composes the digital photos. The PIL Library takes a Cartesian pixel coordinate system, with (0,0) in the upper left corner. It will support image file formats like PNG, JPEG, PPM, GIF, TIFF, and BMP. A Circle is a type of ellipse. Here, all points are an equal distance from the center. We can draw a circle by the ellipse method from the ImageDraw module. This may take an integer or float argument. It represents the degrees to rotate an image. It also returns a new Image object of the rotated image.


NumPy is a Python library for numeric arrays. This is an ideal tool to use with Pillow. Photo editors use image cropping. It removes a part of an image to highlight a subject. It changes the aspect ratio or improves the framing. We can trim an equal margin value from each side of the image using the crop method.   

   

When you crop an image, you choose a rectangular region within the image. While removing everything else outside the region, it remains retained. The image's height or width may differ from the requested dimensions. The resulting image will always have smaller dimensions. Python can perform the automatic processing of digital images.


You can do it using Pillow. Cropping deletes certain parts of the image. It reduces the number of pixels and shrinks the image size. The function returns the cropped array object as the image between the start and end coordinates (x and y). The left and upper coordinate the top-left corner's x and y coordinates. The right and lower specifies the x and y coordinates of the bottom-right corner of the region. This library lets us edit images. We can crop, resize, add text, rotate, and grayscale them.  

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

Code

In this solution, we used the Numpy and Pillow library.

Instructions

Follow the steps carefully to get the output easily.

  1. Download and Install the PyCharm Community Edition on your computer.
  2. Open the terminal and install the required libraries with the following commands.
  3. Install Numpy - pip install Numpy.
  4. Install Pillow - pip install Pillow
  5. Create a new Python file on your IDE.
  6. Copy the snippet using the 'copy' button and paste it into your python file.(Use any one method code)
  7. Write the path of the image instead of the test.jpg.
  8. Write crop_image(image).show
  9. Run the current file to generate the output.


I hope you found this useful. I have added the link to dependent libraries, and version information in the following sections.


I found this code snippet by searching for ' How can I crop an Image with 1:1 aspect ratio using pillow in Python? ' 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.
  2. The solution is tested on Python 3.11.1
  3. Numpy version- 1.25.2
  4. Pillow version- 10.0.0


Using this solution, we are able to crop an image in a pillow with simple steps. This process also facilitates an easy-to-use, hassle-free method to create a hands-on working version of code which would help us to crop an image in pillow.

Dependent Libraries

numpyby numpy

Python doticonstar image 23755 doticonVersion:v1.25.0rc1doticon
License: Permissive (BSD-3-Clause)

The fundamental package for scientific computing with Python.

Support
    Quality
      Security
        License
          Reuse

            numpyby numpy

            Python doticon star image 23755 doticonVersion:v1.25.0rc1doticon License: Permissive (BSD-3-Clause)

            The fundamental package for scientific computing with Python.
            Support
              Quality
                Security
                  License
                    Reuse

                      Pillowby python-pillow

                      Python doticonstar image 10903 doticonVersion:9.5.0doticon
                      License: Others (Non-SPDX)

                      Python Imaging Library (Fork)

                      Support
                        Quality
                          Security
                            License
                              Reuse

                                Pillowby python-pillow

                                Python doticon star image 10903 doticonVersion:9.5.0doticon License: Others (Non-SPDX)

                                Python Imaging Library (Fork)
                                Support
                                  Quality
                                    Security
                                      License
                                        Reuse

                                          If you do not have the Numpy and Pillow libraries that are required to run this code, you can install them by clicking on the above link.

                                          You can search for any dependent library on kandi like Numpy and Pillow.

                                          FAQ:  

                                          1. What is the Python Image Library, and how does it help with image cropping?   

                                          PIL is the Python Imaging Library. The PIL.Image.crop() method cuts a rectangular part of any image.   

                                            

                                          2. What is the PIL import Image command used in image processing?    

                                          PIL is the Python Imaging Library. It creates a Python interpreter with image editing ability. The Image module creates a class with the same name. It displays a PIL image using it.   

                                             

                                          3. How can I alter an image crop's vertical and horizontal pixels in a popular Python library such as Pillow?    

                                          Pillow will save the image file in PNG format. To resize the image, use the resize() method. It takes two arguments: width and height. We can use the crop() method to crop the image. It takes one argument as a box tuple that will define the position and size of the cropped region.   

                                             

                                          4. What image file formats does the Pillow image Module support?   

                                          Pillow supports image file formats: PNG, JPEG, PPM, GIF, TIFF, and BMP. Pillow performs various image operations, such as cropping, resizing, and rotating.   

                                             

                                          5. Does resizing affect quality when I use Pillow Library for cropping images?   

                                          The resize() method has two issues. It changes the image's aspect ratio and its exact width and height. If you make the new instance bigger than the original, the resize() function will have issues. It reduces its quality. 

                                          Support

                                          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