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
- сохранить результат