Skip to Content
ModulesPillow TutorialBasic Image Operations

Basic Image Operations in Pillow

Pillow makes it easy to perform fundamental image operations such as opening, displaying, saving images, and converting them between different modes (e.g., RGB, Grayscale). Let’s explore these operations step by step.


Opening and Displaying Images

Opening an Image

Use the Image.open() method to open an image file.

from PIL import Image # Open an image file img = Image.open("example.jpg") print("Image format:", img.format) print("Image size:", img.size) print("Image mode:", img.mode)

Displaying an Image

Use the show() method to display an image in the default image viewer.

# Display the image img.show()

Saving Images in Different Formats

You can save images in various formats such as JPEG, PNG, or BMP using the save() method.

# Save the image as a PNG file img.save("example_copy.png", format="PNG") # Save the image as a JPEG file img.save("example_copy.jpg", format="JPEG")

Supported Formats

Pillow supports a wide range of formats including:

  • JPEG
  • PNG
  • BMP
  • GIF
  • TIFF

Check the Pillow documentation  for the complete list.


Converting Between Modes

Pillow supports different image modes:

  • RGB: Red, Green, Blue (standard color image).
  • L: Grayscale.
  • CMYK: Cyan, Magenta, Yellow, Black (used in printing).

Converting to Grayscale

Convert an image to grayscale using the convert() method:

# Convert to grayscale gray_img = img.convert("L") gray_img.show()

Converting to RGB

Convert an image to RGB mode:

# Convert to RGB rgb_img = gray_img.convert("RGB") rgb_img.show()

Example: Batch Conversion

Convert multiple images to grayscale:

import os from PIL import Image # Path to the folder containing images folder_path = "images/" output_folder = "grayscale_images/" # Ensure the output folder exists os.makedirs(output_folder, exist_ok=True) # Convert all images in the folder to grayscale for filename in os.listdir(folder_path): if filename.endswith(".jpg") or filename.endswith(".png"): img = Image.open(os.path.join(folder_path, filename)) gray_img = img.convert("L") gray_img.save(os.path.join(output_folder, filename))

Try It Yourself

Problem 1: Open and Display an Image

Write a Python script to open an image named sample.jpg and display its size, mode, and format.

Show Solution

from PIL import Image img = Image.open("sample.jpg") print("Image Format:", img.format) print("Image Size:", img.size) print("Image Mode:", img.mode) img.show()

Problem 2: Convert and Save Images

Write a script to open sample.jpg, convert it to grayscale, and save it as sample_gray.png.

Show Solution

from PIL import Image img = Image.open("sample.jpg") gray_img = img.convert("L") gray_img.save("sample_gray.png") gray_img.show()

With these basic operations, you can start manipulating images effectively using Pillow. Stay tuned for more advanced topics in the next sections!

Last updated on