""" Generate icons for a Tauri Application ---------------------- By Ibai Farina For correct functionality, the base logo should be 512x512 or larger (keeping the aspect ratio). """ __title__ = 'Tauri Icon Generator' __author__ = 'Ibai Farina' __license__ = 'MIT' __version__ = '0.1.0' import os import sys os.system("cls" if os.name == "nt" else "clear") try: from PIL import Image import icnsutil except ImportError: print("Error while importing the required libraries to run this app.") print("Make sure you have installed:") print("- PIL (https://pypi.org/project/Pillow/) : manipulate images") print("- icnsutil (https://pypi.org/project/icnsutil/) : create the .icns macOS icon file") icon_guides = { "32x32": 32, "128x128": 128, "128x128@2x": 256, "icon": 512, "Square30x30Logo": 30, "Square44x44Logo": 44, "Square71x71Logo": 71, "Square89x89Logo": 89, "Square107x107Logo": 107, "Square142x142Logo": 142, "Square150x150Logo": 150, "Square284x284Logo": 284, "Square310x310Logo": 312, "StoreLogo": 50, } base_image_path = input("Enter the 1024x1024 base icon path: ") try: base_image = Image.open(base_image_path) # 1024x1024 base icon except FileNotFoundError: print("Specified filed doesn't exist!") sys.exit(-1) if not os.path.exists("icons"): print("Creating `icons` folder") os.mkdir("icons") # All png icons for filename, size in icon_guides.items(): resized = base_image.resize((size, size)) resized.save(os.path.join("icons", filename + ".png")) # .ico file sizes = [(128, 128)] base_image.save(os.path.join("icons", "icon.ico"), sizes=sizes) # macOS icns icons icns = icnsutil.IcnsFile() icns.add_media(file=base_image_path) icns.add_media(file=os.path.join("icons", "icon.png")) icns.add_media(file=os.path.join("icons", "128x128@2.png")) icns.write(os.path.join("icons", "icon.icns")) print("Done!")