Использование GIMP в качестве сервера на Windows - PullRequest
0 голосов
/ 25 января 2012

Вот моя проблема.

КОНТЕКСТ

Я создаю целую систему для обработки изображений в моей компании.Мы обрабатываем файл .psd и .cr2, выполняя множество различных операций (например, развиваем файл .cr2, меняя архитектуру изображения здания экспозиции со слоем и т. Д.)
Поскольку мы очень молоды (==> очень малы сограниченный бюджет) у нас нет компьютера, предназначенного для обработки изображений.Но нам все еще нужно довольно много обработки.Итак, я сделал следующее:
Я установил NAS, а затем установил немного .AS3 deamon на 3 компьютера компании, у которых есть фотошоп (мне просто удалось сделать это в .as3, что мне стыдно).
Эта программа использует новое «удаленное соединение» в cs5.1 для управления фотошопом. В основном, программа просто проверяет в очереди, есть ли работа, и если это так, она передает заказ в фотошоп, используя файл .jsx..
В конце, когда мы хотим использовать фотошоп на компьютере, мы просто прекращаем использование этого фотошопа и затем снова активируем его, если нам нужна некоторая обработка.

ПРОБЛЕМА

Это работаетпока хорошо, но у меня есть большая проблема: трудно измерить эту систему по финансовым причинам ==> Photoshop не бесплатен! Это проблема, потому что масштабируемость была целью ...

Так что моя идея состоит в том, чтобыиспользуйте Gimp таким же образом. На любом новом компьютере компании должен быть установлен gimp и немного Python / C ++ / любой другой программы для его управления.

ВОПРОС

За исключениемтот факт, что gimp 2.6 (2.8 !!!) все еще не поддерживает набор слоев, у меня возникла проблема с установкой простого сокетного соединения с ним!
Как программа A может отправить в Gimp скрипт на pythonобрабатывать изображения?

1 Ответ

1 голос
/ 27 января 2012

Это можно сделать, и это не сложно сделать.То, что можно и нельзя делать из GIMP, можно увидеть, проверив API сценариев GIMP <известный как процедурная база данных. Вы можете увидеть доступные функции и использование, перейдя в Справка-> База данных процедур из GIMP.Они доступны для Python в модуле «pdb», с подчеркиванием, заменяющим тире в именах функций (и всякий раз, когда первый аргумент является «интерактивным / неинтерактивным», ti вообще не указывать в вызове)Самое главное, что все эти функции работают только с запущенным экземпляром GIMP - импорт модулей gimp, gimpfu или pdb из Pyma, работающего вне GIMP, приведет к ошибке.

С другой стороны, кроме GIMPAPI, который вы имеете в своем распоряжении, full Python Language - со всем, что есть в его стандартном libray, плюс любые сторонние модули, которые вы выберете для установки.

Итак, вы можете написатьприложение, которое слушает вызовы XML-RPC, получает некоторое текстовое сообщение и «исполняет» это сообщение как скрипт - вуаля (пожалуйста, делайте это, если вы абсолютно доверяете источнику запроса для скриптов).

Написание PythonСценарии для GIMP могут быть несколько хитрыми - вам рекомендуется подыгрывать, используя Python Console из wВ Gimp-> filters-> Python-> консольном меню можно найти документацию и примеры в других местах (http://stackoverflow.com/questions/tagged/gimp+python) о том, как выполняются эти сценарии.С другой стороны, создание сервера xml-rpc с использованием Python для запуска из плагина GIMP - это простая вещь, и даже официальные документы Python могут привести пример: http://docs.python.org/library/simplexmlrpcserver.html

Вы должны создать свой «сервер сценариев xml-rpc» как плагин GIMP-Python и запустить GIMP с командной строкой, такой как gimp -i -b (python-fu-myserverplugin ), чтобы запустить его.

...