我正在构建一个Python应用程序,使用PyInstaller捆绑到Windows、Linux(作为AppImage)和MacOS上。
我需要为这些平台创建快捷方式图标。我有一个标志,但我很难将其转换为正确的格式。似乎这三个平台使用不同的图标大小和格式。
是否有任何在线/离线生成器可以从jpg文件创建适用于这三个平台的图标?
我正在构建一个Python应用程序,使用PyInstaller捆绑到Windows、Linux(作为AppImage)和MacOS上。
我需要为这些平台创建快捷方式图标。我有一个标志,但我很难将其转换为正确的格式。似乎这三个平台使用不同的图标大小和格式。
是否有任何在线/离线生成器可以从jpg文件创建适用于这三个平台的图标?
Tom!我给你找到了解决方案!请前往此处网站并将您的图片转换为icns格式。然后在pyinstaller中运行以下命令:-
pyinstaller pythonfile.py -F --i=icon_name.icns -noconsole
它的运行良好。
如果你想在Windows文件中为python.py
添加图标,可以尝试以下方法:-
如果您正在使用pygame,请使用此代码:
icon = pygame.image.load('icon.png')
pygame.display.set_icon(icon)
如果您正在使用TKinter,请使用以下代码:
screen = Tk()
photo = PhotoImage(file = "Any image file")
screen.iconphoto(False, photo)
pip install pyinstaller
在pyinstaller中,使用以下命令:
pyinstaller pythonfile.py -F --i icon_name.ico -noconsole
关于此事的一些信息:-
pyinstaller pythonfile.py -F --i icon_name.ico -nowindowed
希望这能对您有所帮助!
根据您的要求,您只需要将徽标从jpg转换为相应操作系统的图标文件,然后尝试使用Pillow的图像转换器。
这段代码将生成所有操作系统(Mac、Win、Linux)的图标文件。
from PIL import Image
filename = r'logo.jpg' # the directory of logo file
img = Image.open(filename) # reads the JPG file
# Generate and save the logo files
img.save('Win_logo.ico') # On windows, icon file extension is .ico
img.save('Mac_logo.icns') # On Mac OS, icon file extension is .icns
# Note: Creating icns requires Mac OS
img.save('Linux_logo.png') # in case if your AppImage requires any logo file
可选地,您可以指定您想要的图标大小(适用于 Windows):
icon_sizes = [(16,16), (32, 32), (48, 48), (64,64)]
img.save('logo.ico', sizes=icon_sizes)
[(16, 16), (24, 24), (32, 32), (48, 48), (64, 64), (128, 128), (255, 255)]
,而任何大于原始尺寸或 255 的尺寸都将被忽略。from platform import system as OS_Name
os_name = OS_Name()
filename = r'logo.jpg' # the directory of logo file
img = Image.open(filename) # reads the JPG file
# Generate and save the logo files
if os_name == 'Windows': img.save('Win_logo.ico') # On windows, icon file extension is .ico
if os_name == 'Darwin' : img.save('Mac_logo.icns') # On Mac OS, icon file extension is .icns
# on Linux the os_name is 'Linux'
img.save('Linux_logo.png') # in case if your AppImage requires any logo file
最好的跨操作系统制作方式是在线制作。 Cloud Convert 是一个很棒的工具。但是,您必须先将您的jpg
文件转换为png
格式。[注意:始终尝试使用png
格式来制作标志,因为它们具有透明度和更方便] 您可以使用上面代码中的PNG部分自动将JPG转换为PNG,或使用JPG to PNG。最后,使用PNG to ICNS将您的PNG文件转换为ICNS文件。
icn
和 icns
,由于我没有 Mac,现在有点困惑。重新检查一下... - Ratul Hasan如果你只是想简单地使用 auto-py-to-exe
,那会更容易些。它使用 pyinstaller,但会自动生成命令,因此你可以将图像上传到 GUI。
如果您想将PNG转换为ICO格式,您可以使用像this这样的PNG到ICO转换器(在线)。由于所有平台都支持.ICO
格式文件,这将是您的一站式解决方案。
首选图标大小为96px x 96px的正方形(高质量)或48px x 48px的正方形(中等质量)。
此外,要为pyinstaller设置应用程序的图标,您可以在使用命令行创建安装程序时指定图标路径。
pyinstaller --onefile --windowed --icon=app.ico app.py
这将创建一个包含指定图标的应用程序安装程序。
.icns
文件。Linux更支持PNG
,XPM
和SVG
格式在此处。对于Windows来说,它是.ico
文件。我知道在创建多平台应用程序时需要关注很多细节,但这就是现实。 - Just Mohit