Python to Convert PNG Image to ICO Format with Full Source Code For Beginners

This project contains a simple python script to convert a .png image to .ICO format

Requirements:

  • Pillow module
pip install pillow

Two methods:

The conversion can be done in two ways:

Using Terminal:

  • Add the image in png format with name as ‘input’ in this folder.
  • Run the convert.py script.
  • output image will be generated and saved in this folder with the name ‘output’.

Using GUI:

  • Run the convertUI.py script.
  • Select the ‘Import PNG File’ button and pick any png image from any location.
  • Select the ‘Convert PNG to ICO’ button and pick the location where the file will be saved.

Source Code:

convert.py

from PIL import Image # Take input image from present folder img = Image.open('input.png') # Generate and save output image to present folder img.save('output.ico')
Code language: PHP (php)

convertUI.py

import tkinter as tk from PIL import Image # Initialize Tkinter window root = tk.Tk() # Initialize variable to store image path img = None # Initialize font, background color, foreground color and width for the buttons font = ('helvetica', 12, 'bold') bg = 'blue' fg = 'white' width = 15 def getPNG(): '''Function to get png image location and open it with pillow''' global img import_file_path = tk.filedialog.askopenfilename(filetypes=[("PNG File",'.png')]) img = Image.open(import_file_path) def convertToICO(): global img '''Function to convert image from png to ico format with pillow and save to user specified location''' if img is None: tk.messagebox.showerror("Error", "No File selected") else: export_file_path = tk.filedialog.asksaveasfilename(defaultextension='.ico') img.save(export_file_path) tk.messagebox.showinfo("Success", "File converted and saved") # Set the window title root.title('PNG to ICO Converter') canvas1 = tk.Canvas(root, width=500, height=350, bg='lightblue') canvas1.pack() # Set the screen title label1 = tk.Label(root, text='PNG to ICO Converter', bg='lightblue') label1.config(font=('helvetica', 20)) canvas1.create_window(250, 100, window=label1) # Browse button to browse for image browseButton = tk.Button(text="Import PNG File", command=getPNG, bg=bg, fg=fg, font=font, width=width) canvas1.create_window(250, 150, window=browseButton) # Convert button to convert selected image and save saveAsButton = tk.Button(text='Convert PNG to ICO', command=convertToICO, bg=bg, fg=fg, font=font, width=width) canvas1.create_window(250, 200, window=saveAsButton) root.mainloop()
Code language: PHP (php)

Leave a Comment