GIMP: добавление отступов к нескольким изображениям

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

У меня есть принтер Brother с драйверами для Linux, но опция масштабирования не работает.
Поэтому я подумал о масштабировании PDF (в который я конвертировал эти сканы), но драйвер принтера масштабировал их обратно, чтобы они соответствовали странице. (Если я отключу масштабируемую опцию, она станет мусором)

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

Вот моя первая попытка:

(define (resize-image filename-in filename-out )
  (let* ((image    (car (gimp-file-load RUN-NONINTERACTIVE filename-in "")))
         (drawable (car (gimp-image-active-drawable image)))
        )
     (gimp-image-resize image 2728 3819 124 173) 
     (gimp-file-save   RUN-NONINTERACTIVE image drawable filename-out "")
  )
)

Это не работает. Изображение просто остается неизменным.

Моя страница формата А4 с разрешением 2480x3472, поэтому я решил добавить 10% к ширине, чтобы она стала 2728x3819, и установить смещение на 5%, чтобы содержимое было центрировано (со значениями смещения 124 и 173).

1 ответ

Решение

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

  • добавить белый слой внизу стека слоев
  • выровнять изображение
  • сохранить результат

или же

  • удалить альфа-канал слоя (при условии, что цвет фона - белый)
  • расширить слой, чтобы покрыть холст (расширение будет заполнено белым): gimp-layer-resize-to-image-size
  • сохранить результат
Другие вопросы по тегам