LINUX.ORG.RU

Crop to Selection для многослойной картинки

 , ,


0

1

Сап рисовач.

Есть много (100 например) пронумерованных картинок (кадры из фильма по порядку). Открываю первую, а остальные добавляю через Open as Layers. Они становятся как-бы слоями. Задача: обрезать их по Rectangle Select. Когда картинка одна, я просто выделяю нужный прямоугольник, копирую его и делаю Paste as New Image. А вот если делать то же самое с картинкой со слоями, то в новый имедж вставляется только первый кадр, а остальных слоев вообще нет. Пробовал выделить все слои — они не выделяются, да и вообще в меню никаких массовых манипуляций с ними не нашел. Возможно, вопрос можно даже расширить до «Как производить манипуляции со всеми слоями одновременно». Кстати, Scale Image, например, отлично работает, уменьшаются все слои одновременно.

Результатом будет гифка, поэтому еще один вопрос: можно ли прямо в гимпе как-то удалить каждый n-ный слой (каждый 2й, 3й, 5й..)? Оно, конечно, можно это сделать скриптом в консоли, но тогда придется заново открывать картинку, добавлять слои, делать этого совсем не хочется.


Ответ на: комментарий от andreyu

Охлол, оказывается надо делать не так, как я, а выделить нужный момент и сделать Image -> Crop to Selection — все работает :3

Остался еще второй вопрос по поводу удаления каждого n-го кадра.

Ok
() автор топика
Ответ на: комментарий от Ok

Остался еще второй вопрос по поводу удаления каждого n-го кадра.

Думаю тут поможет imagemagick - разобрать изображение на кадры, удалить лишние, склеить новое изображение.

Да и вообще, всю эту работу изначально проще было сделать с помощью imagemagick.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Думаю тут поможет imagemagick - разобрать изображение на кадры, удалить лишние, склеить новое изображение.

Оно уже разбито mplayer'ом. Я не пересобираю гифку, а делаю новую из видео. Собственно, я уже понял как их более-менее нормально делать, просто подбираю опции для оптимального размер/качество.

Да и вообще, всю эту работу изначально проще было сделать с помощью imagemagick.

Думал о нем, но, полагаю, не проще. Во-первых висивиг; во-вторых, не надо запоминать никаких параметров; в-третьих, в один момент времени я работаю с одним изображением, поэтому его batch-возможности мне совсем не нужны.

Например, я изменил размер сотни кадров, понял что перестарался, тут же отменил, сделал чуть по другому. С imagemagick пришлось бы плясать с временными директориями, опциями и т.п.

Ok
() автор топика
Ответ на: комментарий от andreyu

imagemagick

Да и оригинальная задача (Crop to Selection) средствами imagemagick не реализуема в принципе за адекватное время/усилия.

Ok
() автор топика
Ответ на: комментарий от Ok

Да и оригинальная задача (Crop to Selection) средствами imagemagick не реализуема в принципе за адекватное время/усилия.

Если я правильно понял, то вы руками грузили все имиджи в gimp и складывали их в слои. Потом сделали общий crop. Вот все это гораздо проще было бы сделать в imagemagick. И гораздо быстрее.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Не:

1. Клацаю на первом изображении -> открываю его в гимпе;

2. В гимпе делаю Open as Layers, в диалоге выделяю все файлы (Ctrl-a), кроме первого;

3. Они автоматически добавляются как слои;

Ну и потом все операции (Scale, Crop) делаются одновременно для всех слоев. Если надо было бы их все вручную добавлять, я бы убился :3

Ok
() автор топика
Ответ на: комментарий от Ok

Кажется, что все быстро будет в gimp. Но это справедливо, если изображения маленькие и их не очень много. Если изображения большие и/или их количество велико, то gimp еще на стадии добавления слоев выжрет всю память и добавку попросит.
ImageMagick работает с отдельным изображением, памяти требует гораздо меньше. Но да, на мелких файлах все упрется в скорость FS.

Я бы сделал так - в gimp определился бы с размерами crop или что там вам нужно. Проверил бы правильность на парочке входных изображений и натравил бы imagemagick на весь пакет изображений.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

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

Ну, исходная задача «Сделать гифку» подразумевает что:

1. ее размер должен быть <=4Mb;

2. кадры делаются из видео, где: 1. разрешения небольшие; 2. делаются в jpeg; 3. качество можно задать на этапе создания.

Средний кадр получается гораздо меньше 50kb, а их количество от 50 до 200. Гимп на такой задаче жрет меньше 300 метров на 32битной системе.

Я бы сделал так - в gimp определился бы с размерами crop или что там вам нужно. Проверил бы правильность на парочке входных изображений и натравил бы imagemagick на весь пакет изображений.

На зачем, если экспорт в гимпе делает в пару кликов :3

Ok
() автор топика
Ответ на: комментарий от MakeMeSmile

Скриптами фш ? Не знаю,в гимпе может они тоже есть

Думаю, в гимпе скрипты появились гораздо раньше :3

можно ли прямо в гимпе как-то удалить каждый n-ный слой (каждый 2й, 3й, 5й..)? Оно, конечно, можно это сделать скриптом в консоли, но тогда придется заново открывать картинку, добавлять слои, делать этого совсем не хочется.

Кстати, придумал забавный лайфхак для этого:

1. Открываем директорию с картинками в режиме Icon View;

2. Ресайзим окно фм так, чтобы кол-во колонок было кратно номеру элементов, которые необходимо удалить (для каждого второго — две, третьего — три);

3. Удаляем нужную колонку :3

Ok
() автор топика
Ответ на: комментарий от Ok

Да, если бы в ГТК был нормальный диалог открытия (как в винде), это можно было делать прям в нем и недеструктивно (без удаления) :sad-panda:

Ok
() автор топика
Ответ на: комментарий от Ok

Вы придумали проблему и нашли ее решение. Я же предлагал просто решение.

andreyu ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.