Replace Ferese logos with shared Fe mark

This commit is contained in:
Samuel Onoja committed 2026-10-07 12:50:05 +01:00
1 parent dbd6c6d446
commit d4c8c10b39
17 files changed
+84 -103

No files matched your search

+51
View File
@@ -0,0 +1,51 @@
#!/usr/bin/env python3
"""Export Ferese's symbolic icon and favicons from its canonical SVG."""
from io import BytesIO
from pathlib import Path
import xml.etree.ElementTree as ET
import cairo
import gi
from PIL import Image
gi.require_version('Rsvg', '2.0')
from gi.repository import Rsvg
ROOT = Path(__file__).resolve().parent.parent
BRANDING = ROOT / 'assets/branding'
SVG = 'http://www.w3.org/2000/svg'
ET.register_namespace('', SVG)
def render(path, size):
handle = Rsvg.Handle.new_from_file(str(path))
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, *size)
viewport = Rsvg.Rectangle()
viewport.x = viewport.y = 0
viewport.width, viewport.height = size
handle.render_document(cairo.Context(surface), viewport)
output = BytesIO()
surface.write_to_png(output)
output.seek(0)
with Image.open(output) as image:
return image.convert('RGBA')
def main():
symbolic = ET.parse(BRANDING / 'ferese.svg').getroot()
for defs in symbolic.findall(f'{{{SVG}}}defs'):
symbolic.remove(defs)
for path in symbolic.iter(f'{{{SVG}}}path'):
path.set('fill', 'currentColor')
ET.indent(symbolic, space=' ')
(BRANDING / 'ferese-symbolic.svg').write_text(ET.tostring(symbolic, encoding='unicode') + '\n')
icon = render(BRANDING / 'ferese.svg', (512, 512))
icon.resize((32, 32), Image.Resampling.LANCZOS).save(ROOT / 'site/assets/favicon-32.png')
icon.save(ROOT / 'site/assets/favicon.ico', sizes=[(16, 16), (32, 32), (48, 48)])
print('Updated symbolic icon and favicons from the canonical Fe mark.')
if __name__ == '__main__':
main()