import os
import sys
gi.require_version('Gegl', '0.4')
from gi.repository import Gegl
big_logo = '@SRCDIR@/gimp-logo-macos.svg'
output_path = '@BUILDDIR@/gimp.icns'
sizes = [ 16, 18, 24, 32, 36, 48, 64, 128, 256, 512, 1024 ]
image_size = max(sizes)
image = Gimp.Image.new(image_size, image_size, Gimp.ImageBaseType.RGB)
image.undo_disable()
for size in sizes:
procedure = Gimp.get_pdb().lookup_procedure("file-svg-load")
config = procedure.create_config()
config.set_property("file", Gio.file_new_for_path(big_logo))
config.set_property("width", size)
config.set_property("height", size)
v = Gimp.Procedure.run(procedure, config)
if v.index(0) != Gimp.PDBStatusType.SUCCESS:
sys.exit(70)
tmp_image = v.index(1)
drawables = tmp_image.get_selected_drawables()
layer = Gimp.Layer.new_from_drawable (drawables[0], image)
image.insert_layer(layer, None, 0)
tmp_image.delete()
procedure = Gimp.get_pdb().lookup_procedure("file-icns-export")
config = procedure.create_config()
drawables = image.get_selected_drawables()
config.set_property("image", image)
config.set_property("file", Gio.file_new_for_path(output_path))
v = Gimp.Procedure.run(procedure, config)
if v.index(0) != Gimp.PDBStatusType.SUCCESS:
sys.exit(70)
[Dauer der Verarbeitung: 0.4 Sekunden, vorverarbeitet 2026-10-27]