Новый API Gimp-а
Старый API, экспорт в PNG:
png_chunks = (1, 1, 0, 1, 1)
pdb['file-png-save'](img, drawable, savedir + '1.png', '1.png', 0, 2, *png_chunks)
Новый API, экспорт в PNG:
args = Gimp.ValueArray.new(11)
args.insert(0, GObject.Value(Gimp.RunMode, Gimp.RunMode.NONINTERACTIVE))
args.insert(1, GObject.Value(Gimp.Image, image))
args.insert(2, GObject.Value(Gimp.Drawable, drawable))
args.insert(3, GObject.Value(GObject.TYPE_STRING, savedir + '1.png'))
args.insert(4, GObject.Value(GObject.TYPE_STRING, '1.png'))
args.insert(5, GObject.Value(GObject.TYPE_BOOLEAN, 0))
args.insert(6, GObject.Value(GObject.TYPE_INT, 2))
args.insert(7, GObject.Value(GObject.TYPE_BOOLEAN, True))
args.insert(8, GObject.Value(GObject.TYPE_BOOLEAN, True))
args.insert(9, GObject.Value(GObject.TYPE_BOOLEAN, False))
args.insert(10, GObject.Value(GObject.TYPE_BOOLEAN, True))
Gimp.get_pdb().run_procedure('file-png-save', args)
Gimp 2 позволял по памяти накатывать 1-строчники, которые применяли муторные однообразные преобразования ко всем загруженным файлам. Gimp 3 требует копипастить простыни бойлерплейта. Документацию на функции хрен найдёшь.
С прямым доступом к полям объектов стало хреново. Gimp.Layer.opacity осталось доступно для чтения и записи, но было отвязано от всего. Чтобы узнать и сменить прозрачность, нужно вызывать геттер и сеттер.
Пока единственное достоинство нового API — переход на 3-й Питон.
P.S. В IRC сообщили, что документации пока нет. Вместо неё есть Gobject Introspection.