mirror of
https://github.com/nimbold/Firelink.git
synced 2026-07-26 20:18:37 +00:00
51 lines
1.6 KiB
Python
51 lines
1.6 KiB
Python
import sys
|
|
from PIL import Image, ImageDraw
|
|
|
|
def process_images(src_path):
|
|
img = Image.open(src_path).convert("RGBA")
|
|
width, height = img.size
|
|
|
|
# Apply a standard macOS rounded rectangle mask
|
|
# macOS standard radius is approx 22.5% of the width
|
|
radius = int(width * 0.225)
|
|
|
|
mask = Image.new("L", (width, height), 0)
|
|
draw = ImageDraw.Draw(mask)
|
|
draw.rounded_rectangle((0, 0, width, height), radius=radius, fill=255)
|
|
|
|
# Apply mask
|
|
img.putalpha(mask)
|
|
|
|
# Save standard png
|
|
img_1024 = img.resize((1024, 1024), Image.Resampling.LANCZOS)
|
|
img_1024.save("Resources/AppIcon.png")
|
|
|
|
# Save Firefox extension icons
|
|
img_48 = img.resize((48, 48), Image.Resampling.LANCZOS)
|
|
img_48.save("Extensions/Firefox/icons/icon-48.png")
|
|
img_128 = img.resize((128, 128), Image.Resampling.LANCZOS)
|
|
img_128.save("Extensions/Firefox/icons/icon-128.png")
|
|
|
|
# MenuBarIconTemplate (64x64 monochrome)
|
|
data = img.getdata()
|
|
new_data = []
|
|
|
|
for item in data:
|
|
r, g, b, a = item
|
|
if r > 100 and r > b * 1.5 and a > 0:
|
|
alpha = min(255, max(0, int((r - 40) * 1.2)))
|
|
new_data.append((0, 0, 0, alpha))
|
|
else:
|
|
new_data.append((0, 0, 0, 0))
|
|
|
|
menu_bar_full = Image.new("RGBA", img.size)
|
|
menu_bar_full.putdata(new_data)
|
|
|
|
menu_bar_64 = menu_bar_full.resize((64, 64), Image.Resampling.LANCZOS)
|
|
menu_bar_64.save("Sources/Firelink/Assets.xcassets/MenuBarIcon.imageset/MenuBarIconTemplate.png")
|
|
|
|
print("Done generating main PNGs")
|
|
|
|
if __name__ == '__main__':
|
|
process_images(sys.argv[1])
|