(define float-array (lambda stuff (letrec ((kernel (lambda (array pos remainder) (if (null? remainder) array (begin (aset array pos (car remainder)) (kernel array (+ pos 1) (cdr remainder))))))) (kernel (cons-array (length stuff) 'double) 0 stuff)))) (define (switch-colors) ; not nomally terminated (set! temp-color car(gimp-palette-get-foreground)) (gimp-palette-set-background (car (gimp-palette-get-foreground))) (gimp-palette-set-foreground temp-color) ) (define (lineto curr-layer x0 y0 x1 y1) (gimp-brushes-set-brush "Circle (01)") (gimp-brushes-refresh) (gimp-brushes-set-spacing 100) (gimp-pencil curr-layer 4 (float-array x0 y0 x1 y1)) ) (define (lineto-dot curr-layer x0 y0 x1 y1) (gimp-brushes-set-brush "Circle (01)") (gimp-brushes-refresh) (gimp-brushes-set-spacing 300) (gimp-pencil curr-layer 4 (float-array x0 y0 x1 y1)) ) (define (lineto-dash curr-layer x0 y0 x1 y1) (gimp-brushes-set-brush "Circle (01)") (gimp-brushes-refresh) (gimp-pencil curr-layer 4 (float-array x0 y0 x1 y1)) (gimp-brushes-set-brush "Circle (05)") (gimp-brushes-set-spacing 250) (gimp-palette-set-foreground (car (gimp-palette-get-background))) (gimp-pencil curr-layer 4 (float-array x0 y0 x1 y1)) ) (define (lineto-dotted-dash curr-layer x0 y0 x1 y1) (gimp-brushes-set-brush "Circle (01)") (gimp-brushes-refresh) (gimp-pencil curr-layer 4 (float-array x0 y0 x1 y1)) (gimp-brushes-set-brush "Circle (07)") (gimp-brushes-set-spacing 200) (gimp-palette-set-foreground (car (gimp-palette-get-background))) (gimp-pencil curr-layer 4 (float-array x0 y0 x1 y1)) (gimp-palette-set-foreground '(0 255 0)) ; green (gimp-brushes-set-brush "Circle (01)") (gimp-brushes-set-spacing 600) (gimp-pencil curr-layer 4 (float-array x0 y0 x1 y1)) ) (define (nojirin-monolith-prep-files) (set! size 200) (set! margin 10) (set! im-size (+ size (* 2 margin))) (set! size-m-ed (+ size margin)) (set! old-bg (car (gimp-palette-get-background))) (set! image (car (gimp-image-new im-size im-size RGB))) ; (set! image (car (gimp-image-new im-size im-size INDEXED))) (set! layer-0 (car (gimp-layer-new image im-size im-size RGBA-IMAGE "layer-0" 100 NORMAL-MODE))) ; INDEXEDA-IMAGE "layer-0" 100 NORMAL-MODE))) (gimp-layer-add-alpha layer-0) (gimp-image-add-layer image layer-0 0) (gimp-drawable-fill layer-0 TRANS-IMAGE-FILL) (gimp-display-new image) (gimp-rect-select image margin margin size size REPLACE TRUE FALSE) ; (gimp-palette-set-background '(153 255 255)) ; paleblue (gimp-palette-set-background '(255 255 255)) ; white (gimp-edit-fill layer-0 BG-IMAGE-FILL) (gimp-palette-set-background '(0 0 0)) ; black (gimp-brushes-set-brush "Circle (01)") (gimp-edit-stroke layer-0) (gimp-selection-none image) (gimp-displays-flush) (set! layer-1 (car (gimp-layer-copy layer-0 255))) (gimp-layer-set-name layer-1 "layer-1") (gimp-image-add-layer image layer-1 -1) (gimp-palette-set-foreground '(0 0 255)) ; blue (lineto layer-1 margin margin (+ margin size) (+ margin size)) ; 1:1 (gimp-displays-flush) (file-png-save 1 image layer-1 (string-append my-path "noji/nojiprep-1.png") (string-append my-path "noji/nojiprep-1.png") 0 9 1 0 0 0 0) (set! layer-2 (car (gimp-layer-copy layer-1 255))) (gimp-layer-set-name layer-2 "layer-2") (gimp-image-add-layer image layer-2 -1) (gimp-palette-set-foreground '(0 0 0)) ; black (lineto layer-2 (+ margin (/ size 2)) margin (+ margin (/ size 2)) (+ size margin)) ; 1/2 (gimp-displays-flush) (file-png-save 1 image layer-2 (string-append my-path "noji/nojiprep-2.png") (string-append my-path "noji/nojiprep-2.png") 0 9 1 0 0 0 0) (set! layer-3 (car (gimp-layer-copy layer-2 255))) (set! layer-2-ad (car (gimp-layer-new image im-size im-size RGBA-IMAGE "layer-2-ad" 100 NORMAL-MODE))) (gimp-drawable-fill layer-2-ad TRANS-IMAGE-FILL) (gimp-image-add-layer image layer-2-ad -1) (gimp-palette-set-foreground '(204 0 0)) ; cc-red (gimp-brushes-set-brush "Circle (01)") (gimp-brushes-refresh) (gimp-brushes-set-spacing 300) (gimp-ellipse-select image (+ margin 0) (+ margin (/ size 5)) (/ (* size 1) 2) (/ size 10) REPLACE TRUE 0 0) (gimp-edit-stroke layer-2-ad) (gimp-rect-select image (+ margin 0) (+ margin (/ size 5) (/ size 10 2)) (/ (* size (+ 6 1)) 12) (/ size 10) REPLACE TRUE FALSE) (gimp-edit-clear layer-2-ad) ; 0/2 - 1/2 (gimp-ellipse-select image (+ margin (/ (* size 1) 2)) (+ margin (/ size 5)) (/ (* size 1) 2) (/ size 10) REPLACE TRUE 0 0) (gimp-edit-stroke layer-2-ad) (gimp-rect-select image (+ margin (/ (* size 1) 2)) (+ margin (/ size 5) (/ size 10 2)) (/ (* size (+ 6 1)) 12) (/ size 10) REPLACE TRUE FALSE) (gimp-edit-clear layer-2-ad) ; 1/2 - 2/2 (gimp-brushes-set-brush "Circle (01)") (gimp-brushes-refresh) (gimp-selection-none image) (gimp-displays-flush) (file-png-save 1 image (car (gimp-image-merge-down image layer-2-ad 0)) (string-append my-path "noji/nojiprep-2ad.png") (string-append my-path "noji/nojiprep-2ad.png") 0 9 1 0 0 0 0) ; (set! layer-3 (car (gimp-layer-copy layer-2 255))) (gimp-layer-set-name layer-3 "layer-3") (gimp-image-add-layer image layer-3 -1) (gimp-palette-set-foreground '(0 0 255)) ; blue (lineto layer-3 (+ margin (/ size 2)) (+ margin size) (+ margin size) margin) ; 1:2 (gimp-displays-flush) (file-png-save 1 image layer-3 (string-append my-path "noji/nojiprep-3.png") (string-append my-path "noji/nojiprep-3.png") 0 9 1 0 0 0 0) (set! layer-4 (car (gimp-layer-copy layer-3 255))) (gimp-layer-set-name layer-4 "layer-4") (gimp-image-add-layer image layer-4 -1) (gimp-palette-set-foreground '(204 0 0)) ; cc-red (lineto-dot layer-4 (+ margin (/ (* size 2) 3)) margin (+ margin (/ (* size 2) 3)) (+ size margin)) ; 2/3 (gimp-displays-flush) (file-png-save 1 image layer-4 (string-append my-path "noji/nojiprep-4.png") (string-append my-path "noji/nojiprep-4.png") 0 9 1 0 0 0 0) (set! layer-5 (car (gimp-layer-copy layer-4 255))) (gimp-layer-set-name layer-5 "layer-5") (gimp-image-add-layer image layer-5 -1) (gimp-palette-set-foreground '(0 0 0)) ; black (lineto layer-5 (+ margin (/ size 3)) margin (+ margin (/ size 3)) (+ size margin)) ; 1/3 (gimp-displays-flush) (file-png-save 1 image layer-5 (string-append my-path "noji/nojiprep-5.png") (string-append my-path "noji/nojiprep-5.png") 0 9 1 0 0 0 0) (set! layer-6 (car (gimp-layer-copy layer-5 255))) (set! layer-5-ad (car (gimp-layer-new image im-size im-size RGBA-IMAGE "layer-5-ad" 100 NORMAL-MODE))) (gimp-drawable-fill layer-5-ad TRANS-IMAGE-FILL) (gimp-image-add-layer image layer-5-ad -1) (gimp-palette-set-foreground '(204 0 0)) ; cc-red (gimp-brushes-set-brush "Circle (01)") (gimp-brushes-refresh) (gimp-brushes-set-spacing 300) (gimp-ellipse-select image (+ margin 0) (+ margin (/ (* size 2) 3) (- (/ size 10 2))) (/ (* size 1) 3) (/ size 10) REPLACE TRUE 0 0) (gimp-edit-stroke layer-5-ad) (gimp-rect-select image (+ margin 0) (+ margin (/ (* size 2) 3) (- (/ size 10))) (/ (* size (+ 4 1)) 12) (/ size 10) REPLACE TRUE FALSE) (gimp-edit-clear layer-5-ad) ; 0/3 - 1/3 (gimp-ellipse-select image (+ margin (/ (* size 1) 3)) (+ margin (/ (* size 2) 3) (- (/ size 10 2))) (/ (* size 1) 3) (/ size 10) REPLACE TRUE 0 0) (gimp-edit-stroke layer-5-ad) (gimp-rect-select image (+ margin (/ (* size 1) 3)) (+ margin (/ (* size 2) 3) (- (/ size 10))) (/ (* size (+ 4 1)) 12) (/ size 10) REPLACE TRUE FALSE) (gimp-edit-clear layer-5-ad) ; 1/3 - 2/3 (gimp-brushes-set-brush "Circle (01)") (gimp-brushes-refresh) (gimp-selection-none image) (gimp-displays-flush) (file-png-save 1 image (car (gimp-image-merge-down image layer-5-ad 0)) (string-append my-path "noji/nojiprep-5ad.png") (string-append my-path "noji/nojiprep-5ad.png") 0 9 1 0 0 0 0) ; (set! layer-6 (car (gimp-layer-copy layer-5 255))) (gimp-layer-set-name layer-6 "layer-6") (gimp-image-add-layer image layer-6 -1) (gimp-palette-set-foreground '(0 0 255)) ; blue (lineto layer-6 (+ margin (/ size 3)) margin (+ margin size) (+ margin size)) ; 3:2 (gimp-displays-flush) (file-png-save 1 image layer-6 (string-append my-path "noji/nojiprep-6.png") (string-append my-path "noji/nojiprep-6.png") 0 9 1 0 0 0 0) (set! layer-7 (car (gimp-layer-copy layer-6 255))) (gimp-layer-set-name layer-7 "layer-7") (gimp-image-add-layer image layer-7 -1) (gimp-palette-set-foreground '(0 0 0)) ; black (lineto layer-7 (+ margin (/ (* size 5) 7)) margin (+ margin (/ (* size 5) 7)) (+ size margin)) ; 5/7 (gimp-displays-flush) (file-png-save 1 image layer-7 (string-append my-path "noji/nojiprep-7.png") (string-append my-path "noji/nojiprep-7.png") 0 9 1 0 0 0 0) (set! layer-8 (car (gimp-layer-copy layer-7 255))) (gimp-layer-set-name layer-8 "layer-8") (gimp-image-add-layer image layer-8 -1) (gimp-palette-set-foreground '(0 0 255)) ; blue (lineto layer-8 (+ margin (/ (* size 5) 7)) margin (+ margin size) (+ margin size)) ; 7:2 (gimp-displays-flush) (file-png-save 1 image layer-8 (string-append my-path "noji/nojiprep-8.png") (string-append my-path "noji/nojiprep-8.png") 0 9 1 0 0 0 0) (set! layer-9 (car (gimp-layer-copy layer-8 255))) (gimp-layer-set-name layer-9 "layer-9") (gimp-image-add-layer image layer-9 -1) (gimp-palette-set-foreground '(204 0 0)) ; cc-red (lineto-dot layer-9 (+ margin (/ (* size 9) 11)) margin (+ margin (/ (* size 9) 11)) (+ size margin)) ; 9/11 (gimp-displays-flush) (file-png-save 1 image layer-9 (string-append my-path "noji/nojiprep-9.png") (string-append my-path "noji/nojiprep-9.png") 0 9 1 0 0 0 0) (set! layer-10 (car (gimp-layer-copy layer-9 255))) (gimp-layer-set-name layer-10 "layer-10") (gimp-image-add-layer image layer-10 -1) (gimp-palette-set-foreground '(0 0 0)) ; black (lineto layer-10 (+ margin (/ (* size 10) 11)) margin (+ margin (/ (* size 10) 11)) (+ size margin)) ; 10/11 (gimp-displays-flush) (file-png-save 1 image layer-10 (string-append my-path "noji/nojiprep-10.png") (string-append my-path "noji/nojiprep-10.png") 0 9 1 0 0 0 0) (set! layer-11 (car (gimp-layer-copy layer-10 255))) (set! layer-10-ad (car (gimp-layer-new image im-size im-size RGBA-IMAGE "layer-10-ad" 100 NORMAL-MODE))) (gimp-drawable-fill layer-10-ad TRANS-IMAGE-FILL) (gimp-image-add-layer image layer-10-ad -1) (gimp-palette-set-foreground '(204 0 0)) ; cc-red (gimp-brushes-set-brush "Circle (01)") (gimp-brushes-refresh) (gimp-brushes-set-spacing 300) (gimp-ellipse-select image (+ margin (/ (* size 9) 11)) (+ margin (/ (* size 4) 11) (- (/ size 12 2))) (/ (* size 1) 11) (/ size 12) REPLACE TRUE 0 0) (gimp-edit-stroke layer-10-ad) (gimp-rect-select image (+ margin (/ (* size 9) 11)) (+ margin (/ (* size 4) 11) (- (/ size 12))) (/ (* size (+ 1 1)) 12) (/ size 12) REPLACE TRUE FALSE) (gimp-edit-clear layer-10-ad) ; 9/11 - 10/11 (gimp-ellipse-select image (+ margin (/ (* size 10) 11)) (+ margin (/ (* size 4) 11) (- (/ size 12 2))) (/ (* size 1) 11) (/ size 12) REPLACE TRUE 0 0) (gimp-edit-stroke layer-10-ad) (gimp-rect-select image (+ margin (/ (* size 10) 11)) (+ margin (/ (* size 4) 11) (- (/ size 12))) (/ (* size (+ 1 1)) 12) (/ size 12) REPLACE TRUE FALSE) (gimp-edit-clear layer-10-ad) ; 10/11 - 11/11 (gimp-brushes-set-brush "Circle (01)") (gimp-brushes-refresh) (gimp-selection-none image) (print layer-10-ad) (gimp-displays-flush) (file-png-save 1 image (car (gimp-image-merge-down image layer-10-ad 0)) (string-append my-path "noji/nojiprep-10ad.png") (string-append my-path "noji/nojiprep-10ad.png") 0 9 1 0 0 0 0) ; (set! layer-11 (car (gimp-layer-copy layer-10 255))) (gimp-layer-set-name layer-11 "layer-11") (gimp-image-add-layer image layer-11 -1) (set! layer-12 (car (gimp-layer-copy layer-11 255))) (gimp-layer-set-name layer-12 "layer-12") (gimp-image-add-layer image layer-12 -1) (set! layer-13 (car (gimp-layer-copy layer-12 255))) (gimp-layer-set-name layer-13 "layer-13") (gimp-image-add-layer image layer-13 -1) (gimp-palette-set-foreground '(0 0 0)) ; black (gimp-selection-none image) ; (gimp-display-new image) (gimp-displays-flush) (gimp-palette-set-background old-bg) (print layer-10) (print image) ; (file-png-save 1 image layer-10 "mono10.png" "mono10.png" 0 9 1 0 0 0 0) (file-png-save 1 image layer-10 (string-append my-path "noji/nojiprep.png") (string-append my-path "noji/nojiprep.png") 0 9 1 0 0 0 0) (gimp-convert-indexed image 2 WEB-PALETTE 0 0 0 "") ; (file-gif-save 1 image layer-10 "monoani.gif" "monoani.gif" 0 1 300 0) (file-gif-save 1 image layer-10 (string-append my-path "noji/nojiprep.gif") (string-append my-path "noji/nojiprep.gif") 0 1 300 0) image ) (script-fu-register "nojirin-monolith-prep-files" ; a name of the function "/Xtns/Script-Fu/MyStuff/Nojirins Prep. Files" ; where in the menu "Create Monolithic Image (multi-layers). a Nojirin_ic way of preparation for paper Monolith . And save files mono10.png, monoani.gif(animation)." ; explanation for the function "HShimura 0" ; written by "HShimrua" ; copyright "July 2001" ; date "" ; mode when the function do )