Это довольно предположительно, поэтому, возможно, не уместный вопрос. Если вы считаете, что я должен вместо этого спросить, где задать такой вопрос, пожалуйста, не стесняйтесь перенаправить меня.
Насколько мне известно, работа с файлами изображений осуществляется путем внесения серии изменений в эти файлы, которые затем сохраняются как новая версия файла, содержащего новое состояние. Хотя сами файлы могут быть в разбираемом текстовом формате (хотя это не так в случае файлов Photoshop или GIMP), и выполняемые действия могут быть отменены, я не знаю ни одной системы редактирования графики, формат файла которой является серия шагов, выполняемых на множестве исходных изображений; Насколько я понимаю, большинство форматов графических файлов носят декларативный, а не процедурный характер.
Я думаю, что сохранение набора шагов, а не состояния, было бы очень разумным способом сохранения файла изображения, поскольку это позволило бы сохранить сложную историю без многократного сохранения больших двоичных битов. Это также позволило бы легко управлять версиями в системах SCM, даже устраняя необходимость блокировать файлы изображений, как это обычно делается при работе с общими носителями в Photoshop или GIMP.
Локально скомпилированная версия изображения будет служить кешем: она будет обновляться и использоваться, чтобы избежать необходимости перестраивать состояние получающегося изображения при каждом его открытии.
В идеале можно было бы повторно применить различные этапы создания окончательного изображения или изменить параметры этих этапов с минимальными сложностями. Возможность извлечения последовательных шагов и параметризации их для будущего использования в качестве макросов может стать очень удобной для реализации.
Есть ли полезная система редактирования изображений, которая работает аналогично этому? Я немного раздражаюсь из-за отсутствия универсальности в gimp
: я хочу, чтобы он работал больше как vim
.
Советы о том, как делать подобные вещи в GIMP (возможно, с использованием Python-fu), также весьма приветствуются, хотя, возможно, наиболее уместно в качестве комментариев, а не ответов.
Мои требования к использованию - это что-то с открытым исходным кодом и работает под Linux, но мне интересно услышать о любых и всех системах, которые работают таким образом, независимо от статуса лицензирования или переносимости.