обычно я просто использовал convert imagemagick, но у меня было несколько отсканированных изображений, которые я должен был обрезать, что было повсюду.

Итак, я открыл около 30 изображений на GIMP, обрезал их вручную. Теперь я обнаружил, что хочу изменить их размер до 66% и экспортировать их все в их первоначальное имя (они были открыты из изображений PNG)

и я понимаю, что нет простого способа сделать это. или есть?

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

1 ответ1

1

Консоль Python может фактически позволить вам сделать это в нескольких строках экрана напрямую, без создания сценария -

for img in gimp.image_list():
    img.scale(int(img.width * 0.66), int(img.height*0.66))
    tmp = pdb.gimp_image_duplicate(img)
    pdb.gimp_image_merge_visible_layers(tmp, CLIP_TO_IMAGE)
    pdb.gimp_file_save(tmp, tmp.layers[0], img.filename, img.filename)
    pdb.gimp_image_delete(tmp)

Что занимает больше строки, чем следовало бы, так это то, что GIMP действительно хочет "сохранить" изображение как есть - так что нужно выполнить шаги по дублированию (внутренне), объединению в один слой и удалению (просто удаляя его из памяти GIMP, а не с диска) - если все ваши изображения уже являются одним слоем, это можно уменьшить до следующих трех строк:

for img in gimp.image_list():
    img.scale(int(img.width * 0.66), int(img.height*0.66))
    pdb.gimp_file_save(img, img.layers[0], img.filename, img.filename)

Чтобы ввести их (или просто скопировать и вставить прямо отсюда туда), перейдите в Filters->Python->Console и введите или вставьте приведенные выше фрагменты в приглашение >>> .

Если вы хотите это сделать, если вы хотите автоматизировать любую другую операцию, не торопитесь, нажмите кнопку "Обзор" в диалоговом окне консоли Python и проверьте все доступные операции. Нажатие на кнопку "Применить" вставит шаблон вызова к этой функции в вашем приглашении (не забудьте добавить префикс пробелы к этому вставленному шаблону, чтобы этот вызов был выровнен внутри блока for - и заменить предложенную переменную шаблона. имена для фактических параметров)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .