;скрипт подготавливает картинку для печати на 4-х листах формата A4 ;если у вас другой формат бумаги необходимо в скрипте изменить переменную otnowenie= ширина листа/длину листа ;в широкоформатных изображениях по умолчанию обрезается правый край ;перед использованием скрипта убедитесь в горизонтальном расположении открытого изображения, ;убедитесь что в изображении всего один слой (define (script-fu-ignatov_poster theImage theDrawable) ; Задаём переменные (let* ( (foregroundWidth (car (gimp-image-width theImage))) ;получаем ширину картинки (foregroundHeight (car (gimp-image-height theImage)));получаем высоту картинки (otnowenie 1.41451612903);отношение ширины к высоте предполагаемого листа бумаги, здесь A4 (newvysota ( / foregroundHeight 2)) ; высота получаемых частей изображения (newwirina ( * newvysota otnowenie)); ширина получаемых частей изображения (polya ( / foregroundHeight 50)) ; нужные поля для склеивания, здесь 50-я часть исходной картинки (imag1 (car (gimp-image-new ( * ( + newvysota polya) otnowenie) ( + newvysota polya) RGB) )); левый верхний угол (layerbase1 (car (gimp-layer-new imag1 ( * ( + newvysota polya) otnowenie) ( + newvysota polya) 0 "base" 100 NORMAL) ) ) (imag2 (car (gimp-image-new ( * ( + newvysota polya) otnowenie) ( + newvysota polya) RGB) ));левый нижний угол (layerbase2 (car (gimp-layer-new imag2 ( * ( + newvysota polya) otnowenie) ( + newvysota polya) 0 "base" 100 NORMAL) ) ) (imag3 (car (gimp-image-new ( * ( + newvysota polya) otnowenie) ( + newvysota polya) RGB) )); правый верхний угол (layerbase3 (car (gimp-layer-new imag3 ( * ( + newvysota polya) otnowenie) ( + newvysota polya) 0 "base" 100 NORMAL) ) ) (imag4 (car (gimp-image-new ( * ( + newvysota polya) otnowenie) ( + newvysota polya) RGB) )); правый нижний угол (layerbase4 (car (gimp-layer-new imag4 ( * ( + newvysota polya) otnowenie) ( + newvysota polya) 0 "base" 100 NORMAL) ) ) ) (gimp-context-push) (gimp-context-set-background "white");задаём основной цвет (gimp-context-set-foreground "black");задаём фоновый цвет ;создание и чистка необходимых изображений и слоёв (gimp-image-undo-disable theImage) (gimp-image-undo-disable imag1) (gimp-image-add-layer imag1 layerbase1 0) (gimp-selection-all imag1) (gimp-edit-clear layerbase1) (gimp-selection-none imag1) (gimp-image-undo-disable imag2) (gimp-image-add-layer imag2 layerbase2 0) (gimp-selection-all imag2) (gimp-edit-clear layerbase2) (gimp-selection-none imag2) (gimp-image-undo-disable imag3) (gimp-image-add-layer imag3 layerbase3 0) (gimp-selection-all imag3) (gimp-edit-clear layerbase3) (gimp-selection-none imag3) (gimp-image-undo-disable imag4) (gimp-image-add-layer imag4 layerbase4 0) (gimp-selection-all imag4) (gimp-edit-clear layerbase4) (gimp-selection-none imag4) (gimp-selection-none theImage) (gimp-rect-select theImage 0 0 newwirina newvysota 2 FALSE 0); выделяем левый верхний угол в исходном изображении (gimp-edit-copy theDrawable);копируем (gimp-rect-select imag1 0 0 newwirina newvysota 1 FALSE 0);выделяем такую же область на новом изображении (gimp-edit-paste layerbase1 TRUE);вставляем (gimp-selection-none theImage) (gimp-text-fontname imag1 layerbase1 ( / newwirina 2) ( + newvysota ( / polya 4)) "Клеить" 2 TRUE ( / polya 2) 1 "Sans");пишем (gimp-image-rotate imag1 0) (gimp-text-fontname imag1 layerbase1 ( / newvysota 2) ( + newwirina ( / polya 4)) "Клеить" 2 TRUE ( / polya 2) 1 "Sans") (gimp-rect-select theImage 0 newvysota newwirina newvysota 2 FALSE 0);левый нижний угол (gimp-edit-copy theDrawable) (gimp-rect-select imag2 0 0 newwirina newvysota 2 FALSE 0) (gimp-edit-paste layerbase2 TRUE) (gimp-selection-none theImage) (gimp-text-fontname imag2 layerbase2 ( / newwirina 2) ( + newvysota ( / polya 4)) "Отрезать" 2 TRUE ( / polya 2) 1 "Sans") (gimp-image-rotate imag2 0) (gimp-text-fontname imag2 layerbase2 ( / newvysota 2) ( + newwirina ( / polya 4)) "Клеить" 2 TRUE ( / polya 2) 1 "Sans") (gimp-rect-select theImage newwirina 0 newwirina newvysota 2 FALSE 0);правый верхний угол (gimp-edit-copy theDrawable) (gimp-rect-select imag3 0 0 ( - foregroundWidth newwirina) newvysota 2 FALSE 0) (gimp-edit-paste layerbase3 TRUE) (gimp-selection-none theImage) (gimp-text-fontname imag3 layerbase3 ( / newwirina 2) ( + newvysota ( / polya 4)) "Клеить" 2 TRUE ( / polya 2) 1 "Sans") (gimp-image-rotate imag3 0) (gimp-text-fontname imag3 layerbase3 ( / newvysota 2) ( + newwirina ( / polya 4)) "Отрезать" 2 TRUE ( / polya 2) 1 "Sans") (gimp-rect-select theImage newwirina newvysota newwirina newvysota 2 FALSE 0); правый нижний угол (gimp-edit-copy theDrawable) (gimp-rect-select imag4 0 0 ( - foregroundWidth newwirina) newvysota 2 FALSE 0) (gimp-edit-paste layerbase4 TRUE) (gimp-selection-none theImage) (gimp-text-fontname imag4 layerbase4 ( / newwirina 2) ( + newvysota ( / polya 4)) "Отрезать" 2 TRUE ( / polya 2) 1 "Sans") (gimp-image-rotate imag4 0) (gimp-text-fontname imag4 layerbase4 ( / newvysota 2) ( + newwirina ( / polya 4)) "Отрезать" 2 TRUE ( / polya 2) 1 "Sans") (gimp-image-clean-all imag1) (gimp-image-undo-enable imag1) (gimp-display-new imag1) (gimp-image-clean-all imag2) (gimp-image-undo-enable imag2) (gimp-display-new imag2) (gimp-image-clean-all imag3) (gimp-image-undo-enable imag3) (gimp-display-new imag3) (gimp-image-clean-all imag4) (gimp-image-undo-enable imag4) (gimp-display-new imag4) (gimp-context-pop) (gimp-image-undo-enable theImage) (gimp-displays-flush) )) (script-fu-register "script-fu-ignatov_poster" ;func name "Постер" ;menu label "Подготавливает картинку для печати на 4 листах формата A4" ;description "Игнатов Роман Иванович" ;author "copyright 2010" ;copyright notice "November 25, 2010" ;date created "" ;image type that the script works on SF-IMAGE "Image" 0 SF-DRAWABLE "Drawable" 0 ) (script-fu-menu-register "script-fu-ignatov_poster" _"/Filters/Decor")