Gimp: нарисуйте границу вокруг выделения, используя соответствующие цвета

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

Как я могу этого добиться?

Редактировать:

Изображение для объяснения того, чего я хочу достичь:

введите описание изображения здесь

Причина: (для тех, кому интересно, почему?)

У меня есть лист спрайтов размером 28x15 плиток, каждая из которых состоит из 32x32 пикселей. Я использую этот лист спрайтов в Unity3d и разбиваю его на спрайты размером 32x32 пикселя.

Проблема в том, что иногда масштабирование спрайтов работает не на 100% правильно. Затем Unity автоматически использует соседние столбцы или строки пикселей для заполнения пробелов. Поскольку эти строки/столбцы являются частью нового спрайта, иногда между спрайтами появляются странные линии.

Итак, я хочу создать буфер вокруг каждого спрайта. Тайлы тогда имеют размер 34x34, но в спрайтах используются только внутренние 32x32, а граница вокруг них является буфером, чтобы избежать этих линий.

Извините, я не читал Гимп. Я оставляю этот ответ в Photoshop, возможно, в Gimp тоже есть фильтр «Максимум». Я нашел это в Интернете: –Фильтры:Искажения:Распространение значений. Используйте «Больше белого» для максимального значения.
Спасибо за быстрый ответ, но, к сожалению, фильтр не добавляет границы пикселей, а только изменяет предыдущее изображение, да и каждый пиксель :( Но я бы хотел, чтобы изображение сохранялось, и вдобавок вокруг изображения рисовалась еще одна рамка в соответствующих цветах.
@Danielilo в GIMP называется фильтром Dilate. Он находится в разделе Filters > Generic > Dilate . Противоположная функция называется Erode и находится там же.
@Kaskorian - я думаю, что GIMP может быть неподходящим программным обеспечением для этого. Гораздо проще добавлять штрихи и отступы в векторном программном обеспечении, таком как Inkscape (которое также является бесплатным). Можете ли вы показать, что вы пытаетесь редактировать/пытаетесь сделать? Это может помочь определить лучшее решение.

Ответы (3)

Настройте холст следующим образом: Откройте изображение 32 x 32. Щелкните Изображение > Размер холста . Установите его на 34 x 34 и нажмите Центр. Нажмите «Слой» > «Слой по размеру изображения » .

С помощью инструмента «Прямоугольное выделение» выделите одну строку пикселей, нажмите «Копировать CTRLCи «Вставить» CTRL+ V. Используйте клавишу со стрелкой, чтобы переместить вставленную строку на место. Нажмите CTRL+ H, чтобы закрепить плавающее выделение. Повторите для каждого края.

введите описание изображения здесь

  • Создайте новую маску слоя с выделением
  • Щелкните значок маски
  • Фильтр меню > Другое > Максимум = 1 пиксель

МАКСИМУМ

На ум приходят несколько процессов:

Ресинтезатор

Простым вариантом может быть использование плагина resynthesizer и файла Heal transparency.

Слияние с более крупными плитками

  • создать изображение, в котором каждая плитка представляет собой отдельный слой. Возможный способ - использовать ofn-tilesскрипт для обрезки изображения и экспорта, а затем перезагрузить изображения с помощью File>Open as layers...(может быть скрипт, который делает это напрямую).
  • дублировать изображение
  • На первой копии сделайте Image>Scale imageи установите 34*34. Назовем это «масштабированной» копией.
  • На второй копии выполните Image>Canvas sizeи установите значение 34*34 и отцентрируйте кнопку текущего изображения ( [Center]). Назовем это копией с измененным размером.
  • Используйте interleave-layersсценарий, чтобы объединить каждый слой изображения с измененным размером с соответствующим слоем масштабированного изображения. Вызовите сценарий из масштабированного изображения, чтобы объединить изображение с измененным размером поверх него. По сути, выходная граница изображения 34*34 представляет собой масштабированную версию границы изображения 32x32.
  • Экспортируйте все слои, используяofn-export-layers
  • Перезагрузите слои как одно изображение, используяofn-tiles

Скрипты здесь

Скрипты ofn-*имеют свой собственный документ в ZIP. interleave-layersописано здесь . Использование подходящей схемы именования ofn-export-layersпозволит ofn-tilesсохранить слои в правильном порядке/положении.