GIMP: экспортировать каждый слой как отдельное изображение в формате PNG

Я попал в ситуацию, когда у меня есть изображение в Gimp с несколькими слоями. Теперь я хочу автоматически экспортировать каждый отдельный слой как отдельное изображение (предпочтительно в формате PNG) в какую-нибудь папку.

Возможно ли это?

Длинный метод : скрыть все слои, кроме одного, обрезать нужный раздел, экспортировать изображение. Скрыть сохраненный слой, показать другой, обрезать раздел, экспорт. Повторение. В некотором роде громоздкое изображение с примерно 20 слоями.

56
задан 20 August 2018 в 12:13

8 ответов

Можно попробовать также этот плагин, Слои Экспорта . Я протестировал его с форматом png, и это работало. Вы просто выбираете папку и формат, и Вы получаете все слои там, каждого в его собственном файле.

41
ответ дан 20 August 2018 в 12:13

Конечно, эта работа для плагина Слои Экспорта к Функциям Файла .

:

  • Управляют слоями в группе слоев.
  • тексты Экспорта, шаблоны и фильтры слоя.
  • название Префикса файлов изображений должно быть дано.
  • Экспорт только в jpg, png, форматы bmp, но требуемые форматы могут быть добавлены легко .
6
ответ дан 20 August 2018 в 12:13

Я думаю, что можно попытаться найти что-то с ImageMagick: apt-get install imagemagick. Это, кажется, в состоянии обработать формат XCF, и можно экспортировать слой в png использование [N] в команде, где N является уровнем слоя.

Источник: http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=17603

Модификации Чтения ImageMagick: http://www.imagemagick.org/Usage/files/#read_mods

3
ответ дан 20 August 2018 в 12:13

Я делал то же самое и пытался загрузить плагины, упомянутые в ответах. Поскольку Хромой веб-сайт в настоящее время снижается, я не мог получить плагины, и я должен был найти другое решение.

то, Что я закончил тем, что делал, было использованием программное обеспечение снимка экрана Затвор , который позволяет Вам выбирать регион экрана, и затем можно повторить тот же снимок экрана того региона всего 1 щелчком. Таким образом, это становится с 2 щелчками на операцию слоя: скройте слой, снимок экрана, скройте следующий слой, снимок экрана...

Намного быстрее, чем что-либо еще я мог придумать и занимаю меньше чем минуту для 20 слоев. Можно потерять качество изображения, хотя в моем случае это не была проблема.

1
ответ дан 20 August 2018 в 12:13

Каждый мог экспортировать изображение как анимированный GIF. Это сохранит каждый слой как отдельный кадр в GIF. Затем imagemagik команда convert -coalesce ./myfile.gif outfile%05d.png извлечет кадры как изображения PNG.

6
ответ дан 20 August 2018 в 12:13

Если PNG является приемлемым выходным форматом, одна опция состоит в том, чтобы экспортировать его, как Открывают Raster (.ora), открытую спецификацию для многоуровневых файлов изображений.

  1. Изображение Экспорта, как Открывают Raster (.ora)

    Файл -> Экспорт Так же...

    myfile.ora

  2. , Открывает myfile.ora как архив с программой как file-roller или 7zip.

    На Ubuntu:

    $ file-roller myfile.ora
    

    (альтернативно)

    $ unzip myfile.ora
    

    Все Ваши слои будут изображениями png под /data, Извлекать их и использовать по желанию.

79
ответ дан 20 August 2018 в 12:13

В первую очередь, Вам не нужен никакой плагин. Даже Вы ничего не должны обрезать. Немного простых шагов.

  1. Выберите слой. Чтобы сделать это просто нажимает на тот конкретный слой.
  2. Скопируйте слой в буфер обмена с помощью Ctrl+C
  3. Теперь создайте новое изображение с помощью Ctrl+Shift+V

Именно. Теперь можно просто экспортировать тот слой в любой формат.

  1. Используйте Shift+Ctrl+E
2
ответ дан 22 November 2019 в 23:44

Лучшее в ответе ThorSummoner то, что он привлек внимание к плагину экспорта OpenRaster, который, как оказалось, находится в файле file-openraster.py в установке GIMP.

Прочитав его код (и с некоторой помощью встроенного браузера процедур), я смог определить, что слои GIMP XCF можно сохранить в отдельные PNG, выбрав «Фильтры» > «Python-fu» > «Консоль» в интерфейс и введите следующее во встроенный интерпретатор Python:

import os

# If you have multiple images open, you may need to adjust
img = gimp.image_list()[0]

savefn = gimp.pdb['file-png-save-defaults']
outpath = "/home/$USER/Pictures" # (or r"C:\Users\$USER\Pictures", etc)

for lay in img.layers:
    # Even if your layer names contain spaces, not a problem
    outname = lay.name + ".png"
    savefn(img, lay, os.path.join(outpath, outname), outname)
    
    # type an extra newline to exit the indented block

Вы увидите, как индикатор прогресса в строке состояния окна изображения начинает прокручивать все ваши слои, записывая каждый из них в файл PNG с тем же именем. , в любом каталоге, который вы указали как outpath. (Который должен уже существовать, в противном случае добавьте os.makedirs(outpath, exists_ok=True) перед циклом.)

Если какое-либо из имен ваших слоев одинаково, это является проблемой, потому что она перезапишет любые ранее записанные файлы. Предупреждение GIMPtor.

Изменить: Если у вас есть слои с одинаковыми именами, вы можете легко проигнорировать имена и вместо этого записать слои в пронумерованные файлы. Просто замените последний цикл выше чем-то вроде:

for n, lay in enumerate(img.layers):
    outname = f"Layer {n:03}.png"
    savefn(img, lay, os.path.join(outpath, outname), outname)

Это запишет слои в файлы PNG с именами от «Layer 000.png» до «Layer 999.png» (или сколько слоев присутствует, если их меньше 1000).

Если версия Python для Gimp не поддерживает f-строки (Python 3.6+), это точно эквивалентно:

outname = "Layer {0:03}.png".format(n)
4
ответ дан 30 July 2020 в 00:04

Другие вопросы по тегам:

Похожие вопросы: