From 33291657255a3c6d57e1cdc269e545a10a6c78c3 Mon Sep 17 00:00:00 2001 From: jwansek Date: Sun, 21 Dec 2025 16:51:31 +0000 Subject: Made into a module, updated --- winIcon.py | 52 ---------------------------------------------------- 1 file changed, 52 deletions(-) delete mode 100644 winIcon.py (limited to 'winIcon.py') diff --git a/winIcon.py b/winIcon.py deleted file mode 100644 index 2a40a05..0000000 --- a/winIcon.py +++ /dev/null @@ -1,52 +0,0 @@ -from win32com.shell import shell, shellcon -from PIL import Image, ImageTk -import win32api -import win32con -import win32ui -import win32gui -import os - -LARGE = "large" -SMALL = "small" - -def get_icon(PATH, size): - #print("\nPath: ", PATH, "Type: ", type(PATH), "Count: ", count, "\n") - - SHGFI_ICON = 0x000000100 - SHGFI_ICONLOCATION = 0x000001000 - if size == "small": - SHIL_SIZE = 0x00001 - elif size == "large": - SHIL_SIZE = 0x00002 - else: - raise TypeError("Invalid argument for 'size'. Must be equal to 'small' or 'large'") - - try: - ret, info = shell.SHGetFileInfo(PATH, 0, SHGFI_ICONLOCATION | SHGFI_ICON | SHIL_SIZE) - hIcon, iIcon, dwAttr, name, typeName = info - ico_x = win32api.GetSystemMetrics(win32con.SM_CXICON) - hdc = win32ui.CreateDCFromHandle(win32gui.GetDC(0)) - hbmp = win32ui.CreateBitmap() - hbmp.CreateCompatibleBitmap(hdc, ico_x, ico_x) - hdc = hdc.CreateCompatibleDC() - hdc.SelectObject(hbmp) - hdc.DrawIcon((0, 0), hIcon) - win32gui.DestroyIcon(hIcon) - - bmpinfo = hbmp.GetInfo() - bmpstr = hbmp.GetBitmapBits(True) - img = Image.frombuffer( - "RGBA", - (bmpinfo["bmWidth"], bmpinfo["bmHeight"]), - bmpstr, "raw", "BGRA", 0, 1 - ) - except win32ui.error: - raise WinIconError("Couldn't get icon for '%s'" % PATH) - return - - if size == "small": - img = img.resize((16, 16), Image.ANTIALIAS) - return img - -class WinIconError(Exception): - pass \ No newline at end of file -- cgit v1.2.3