How to create an ICO file using Pillow?

Jan 14, 2026

Leave a message

Isabella Anderson
Isabella Anderson
Isabella is a new employee at Yangzhou Xinkai Textile Hotel Supplies Factory. Although new to the job, she is full of enthusiasm and is quickly learning and growing under the company's culture of 'Quality First, Service with Heart'.

Creating an ICO file can be a useful skill, especially when you're looking to add a personalized touch to your software, website, or application. As a pillow supplier, I've found that having a unique ICO icon can enhance brand recognition and make our products stand out in the digital space. In this blog post, I'll guide you through the process of creating an ICO file using the Pillow library in Python, a powerful and versatile tool for image processing.

Prerequisites

Before we dive into creating an ICO file, you'll need to have a few things in place:

  1. Python Installation: Make sure you have Python installed on your system. You can download the latest version of Python from the official website (https://www.python.org/downloads/).
  2. Pillow Library: Pillow is a fork of the Python Imaging Library (PIL) and provides a wide range of image processing capabilities. You can install Pillow using pip, the Python package installer. Open your terminal or command prompt and run the following command:
pip install pillow
  1. Image File: You'll need an image file that you want to convert into an ICO file. The image should be in a common format such as PNG, JPEG, or BMP.

Step 1: Import the Pillow Library

Once you have Python and Pillow installed, you can start writing the code to create an ICO file. Open your favorite text editor or Python IDE and create a new Python file. At the beginning of the file, import the Image module from the Pillow library:

from PIL import Image

Step 2: Open the Image

Next, you need to open the image file that you want to convert into an ICO file. You can use the open() method of the Image class to open the image. Replace 'your_image_file.png' with the actual path to your image file:

image = Image.open('your_image_file.png')

Step 3: Resize the Image

ICO files typically support multiple sizes, so it's a good idea to resize the image to different dimensions. Pillow makes it easy to resize an image using the resize() method. Here's an example of resizing the image to three common ICO sizes: 16x16, 32x32, and 48x48 pixels:

sizes = [(16, 16), (32, 32), (48, 48)]
ico_sizes = []
for size in sizes:
    resized_image = image.resize(size, Image.LANCZOS)
    ico_sizes.append(resized_image)

In this code, we first define a list of sizes that we want to include in the ICO file. Then, we loop through each size and resize the image using the resize() method. The Image.LANCZOS argument specifies the resampling filter to use, which provides high-quality resizing. Finally, we add the resized image to the ico_sizes list.

Step 4: Save the ICO File

Now that you have the resized images, you can save them as an ICO file. Use the save() method of the Image class and specify the file format as 'ICO'. Replace 'your_ico_file.ico' with the desired name for your ICO file:

ico_sizes[0].save('your_ico_file.ico', format='ICO', sizes=sizes)

In this code, we save the first resized image in the ico_sizes list as the ICO file. The format='ICO' argument specifies the file format, and the sizes=sizes argument tells Pillow to include all the specified sizes in the ICO file.

Goose Down Pillows bestGoose Down Pillows

Step 5: Complete Code Example

Here's the complete code example that combines all the steps above:

from PIL import Image

# Open the image
image = Image.open('your_image_file.png')

# Resize the image
sizes = [(16, 16), (32, 32), (48, 48)]
ico_sizes = []
for size in sizes:
    resized_image = image.resize(size, Image.LANCZOS)
    ico_sizes.append(resized_image)

# Save the ICO file
ico_sizes[0].save('your_ico_file.ico', format='ICO', sizes=sizes)

Using the ICO File

Once you have created the ICO file, you can use it in various ways. For example, you can use it as the icon for your software application, website favicon, or desktop shortcut. To use the ICO file as a website favicon, you can add the following code to the <head> section of your HTML file:

<link rel="icon" href="your_ico_file.ico" type="image/x-icon">

Our Pillow Products

As a pillow supplier, we offer a wide range of high-quality pillows to meet your needs. Whether you prefer the comfort of Natural Latex Sleeping Pillow, the softness of Goose Down Pillows, or the support of Hilton Microfiber Down Pillow, we have the perfect pillow for you.

Contact Us for Procurement

If you're interested in purchasing our pillows or have any questions about our products, we'd love to hear from you. Please feel free to reach out to us for procurement discussions. We're committed to providing excellent customer service and ensuring that you find the right pillows for your needs.

References

  • Pillow Documentation: https://pillow.readthedocs.io/en/stable/
  • Python Official Website: https://www.python.org/
Send Inquiry
Contact usif have any question
You can either contact us via phone, email or online form below. Our specialist will contact you back shortly.
contact us