在 Python 中反转 .ico 文件
Invert .ico file in Python
我正在尝试根据 windows 主题反转 .ico 文件的图标。
根据 windows 的他们,我会尝试反转托盘图标。
我还没有找到任何方法来实现这一目标。
如何使用 python 2.7 反转图标?
def get_hicon(self, icon):
hicon = None
hinst = win32gui.GetModuleHandle(None)
if icon and os.path.isfile(icon):
icon_flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE
ico_x = win32api.GetSystemMetrics(win32con.SM_CXSMICON)
ico_y = win32api.GetSystemMetrics(win32con.SM_CYSMICON)
hicon = win32gui.LoadImage(hinst,
icon,
win32con.IMAGE_ICON,
ico_x,
ico_y,
icon_flags)
return hicon
我用这段代码来获取图标
您可以利用 Pillow,反转图像并将其保存到一个临时文件,该文件将在上下文管理器(带块)退出后自动删除
# pip install pillow
from PIL import Image, ImageOps
from tempfile import NamedTemporaryFile
with NamedTemporaryFile() as file, Image.open("image.ico") as img:
old_mode = img.mode # loaded as RGBA!
rgb = img.convert("RGB")
inverted = ImageOps.invert(rgb)
inverted = inverted.convert(old_mode)
inverted.save(file, format="ICO", quality=100)
file.seek(0) # rewind so it can be read again
print(file.name)
# /tmp/tmpjo7pa_r6
# load/read icon here, probably self.get_hicon(file.name)
# file is automatically deleted here
我正在尝试根据 windows 主题反转 .ico 文件的图标。 根据 windows 的他们,我会尝试反转托盘图标。 我还没有找到任何方法来实现这一目标。
如何使用 python 2.7 反转图标?
def get_hicon(self, icon):
hicon = None
hinst = win32gui.GetModuleHandle(None)
if icon and os.path.isfile(icon):
icon_flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE
ico_x = win32api.GetSystemMetrics(win32con.SM_CXSMICON)
ico_y = win32api.GetSystemMetrics(win32con.SM_CYSMICON)
hicon = win32gui.LoadImage(hinst,
icon,
win32con.IMAGE_ICON,
ico_x,
ico_y,
icon_flags)
return hicon
我用这段代码来获取图标
您可以利用 Pillow,反转图像并将其保存到一个临时文件,该文件将在上下文管理器(带块)退出后自动删除
# pip install pillow
from PIL import Image, ImageOps
from tempfile import NamedTemporaryFile
with NamedTemporaryFile() as file, Image.open("image.ico") as img:
old_mode = img.mode # loaded as RGBA!
rgb = img.convert("RGB")
inverted = ImageOps.invert(rgb)
inverted = inverted.convert(old_mode)
inverted.save(file, format="ICO", quality=100)
file.seek(0) # rewind so it can be read again
print(file.name)
# /tmp/tmpjo7pa_r6
# load/read icon here, probably self.get_hicon(file.name)
# file is automatically deleted here