GIMP Script-fu

Hex Artifact Content
Login

Artifact 4805528bcf11458114083075808bca07b9769998:


0000: 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69  ; This program i
0010: 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b  s free software;
0020: 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72   you can redistr
0030: 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20  ibute it and/or 
0040: 6d 6f 64 69 66 79 0a 3b 20 69 74 20 75 6e 64 65  modify.; it unde
0050: 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74  r the terms of t
0060: 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50  he GNU General P
0070: 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73  ublic License as
0080: 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 20   published by.; 
0090: 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72  the Free Softwar
00a0: 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69  e Foundation; ei
00b0: 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 20 6f  ther version 2 o
00c0: 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f  f the License, o
00d0: 72 0a 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74  r.; (at your opt
00e0: 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76  ion) any later v
00f0: 65 72 73 69 6f 6e 2e 0a 3b 0a 3b 20 54 68 69 73  ersion..;.; This
0100: 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74   program is dist
0110: 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68  ributed in the h
0120: 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c  ope that it will
0130: 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 20 62 75   be useful,.; bu
0140: 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41  t WITHOUT ANY WA
0150: 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20  RRANTY; without 
0160: 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64  even the implied
0170: 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 20 4d   warranty of.; M
0180: 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f  ERCHANTABILITY o
0190: 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20  r FITNESS FOR A 
01a0: 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f  PARTICULAR PURPO
01b0: 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 20 47  SE.  See the.; G
01c0: 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69  NU General Publi
01d0: 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f  c License for mo
01e0: 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 20 52  re details...; R
01f0: 65 76 69 73 65 64 20 4a 61 6e 75 61 72 79 20 32  evised January 2
0200: 30 31 33 20 74 6f 20 61 64 64 20 61 20 22 50 6f  013 to add a "Po
0210: 6c 79 67 6f 6e 61 6c 22 20 6f 70 74 69 6f 6e 20  lygonal" option 
0220: 74 68 61 74 20 61 74 74 65 6d 70 74 73 0a 3b 20  that attempts.; 
0230: 74 6f 20 73 74 72 61 69 67 68 74 65 6e 20 74 68  to straighten th
0240: 65 20 6c 69 6e 65 73 20 62 65 74 77 65 65 6e 20  e lines between 
0250: 63 6f 6c 6f 72 73 2e 20 54 68 69 73 20 6f 70 74  colors. This opt
0260: 69 6f 6e 20 63 61 6e 20 62 65 20 71 75 69 74 65  ion can be quite
0270: 0a 3b 20 73 6c 6f 77 20 62 75 74 20 79 69 65 6c  .; slow but yiel
0280: 64 73 20 61 20 76 65 72 79 20 6e 69 63 65 20 72  ds a very nice r
0290: 65 73 75 6c 74 2e 0a 0a 28 64 65 66 69 6e 65 20  esult...(define 
02a0: 28 73 63 72 69 70 74 2d 66 75 2d 73 67 2d 71 75  (script-fu-sg-qu
02b0: 61 6e 74 69 7a 65 20 6f 72 69 67 2d 69 6d 61 67  antize orig-imag
02c0: 65 20 64 72 61 77 61 62 6c 65 20 6e 75 6d 2d 63  e drawable num-c
02d0: 6f 6c 6f 72 73 20 73 6d 6f 6f 74 68 69 6e 67 20  olors smoothing 
02e0: 72 6f 75 6e 64 65 64 20 70 6f 6c 79 67 6f 6e 61  rounded polygona
02f0: 6c 20 6d 61 73 6b 2d 73 65 6c 65 63 74 65 64 29  l mask-selected)
0300: 0a 20 20 28 64 65 66 69 6e 65 20 28 70 6f 6c 79  .  (define (poly
0310: 67 6f 6e 61 6c 69 7a 65 20 69 6d 61 67 65 20 70  gonalize image p
0320: 61 74 68 29 0a 20 20 20 20 28 67 69 6d 70 2d 69  ath).    (gimp-i
0330: 6d 61 67 65 2d 75 6e 64 6f 2d 67 72 6f 75 70 2d  mage-undo-group-
0340: 73 74 61 72 74 20 69 6d 61 67 65 29 0a 20 20 20  start image).   
0350: 20 28 6c 65 74 20 28 28 6e 65 77 2d 70 61 74 68   (let ((new-path
0360: 20 28 63 61 72 20 28 67 69 6d 70 2d 76 65 63 74   (car (gimp-vect
0370: 6f 72 73 2d 6e 65 77 20 69 6d 61 67 65 20 22 74  ors-new image "t
0380: 65 6d 70 22 29 29 29 29 0a 20 20 20 20 20 20 28  emp")))).      (
0390: 67 69 6d 70 2d 69 6d 61 67 65 2d 61 64 64 2d 76  gimp-image-add-v
03a0: 65 63 74 6f 72 73 20 69 6d 61 67 65 20 6e 65 77  ectors image new
03b0: 2d 70 61 74 68 20 2d 31 29 0a 20 20 20 20 20 20  -path -1).      
03c0: 28 6c 65 74 20 6c 6f 6f 70 20 28 28 73 74 72 6f  (let loop ((stro
03d0: 6b 65 73 20 28 76 65 63 74 6f 72 2d 3e 6c 69 73  kes (vector->lis
03e0: 74 20 28 63 61 64 72 20 28 67 69 6d 70 2d 76 65  t (cadr (gimp-ve
03f0: 63 74 6f 72 73 2d 67 65 74 2d 73 74 72 6f 6b 65  ctors-get-stroke
0400: 73 20 70 61 74 68 29 29 29 29 29 0a 20 20 20 20  s path))))).    
0410: 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 3f 20 73      (if (null? s
0420: 74 72 6f 6b 65 73 29 0a 20 20 20 20 20 20 20 20  trokes).        
0430: 20 20 6e 65 77 2d 70 61 74 68 0a 20 20 20 20 20    new-path.     
0440: 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 74 72       (let* ((str
0450: 6f 6b 65 2d 69 6e 66 6f 20 28 67 69 6d 70 2d 76  oke-info (gimp-v
0460: 65 63 74 6f 72 73 2d 73 74 72 6f 6b 65 2d 67 65  ectors-stroke-ge
0470: 74 2d 70 6f 69 6e 74 73 20 70 61 74 68 20 28 63  t-points path (c
0480: 61 72 20 73 74 72 6f 6b 65 73 29 29 29 0a 20 20  ar strokes))).  
0490: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28                 (
04a0: 6e 65 77 2d 70 6f 69 6e 74 73 20 28 6c 65 74 20  new-points (let 
04b0: 70 6f 69 6e 74 2d 6c 6f 6f 70 20 28 28 61 6c 6c  point-loop ((all
04c0: 2d 70 6f 69 6e 74 73 20 28 76 65 63 74 6f 72 2d  -points (vector-
04d0: 3e 6c 69 73 74 20 28 63 61 64 64 72 20 73 74 72  >list (caddr str
04e0: 6f 6b 65 2d 69 6e 66 6f 29 29 29 0a 20 20 20 20  oke-info))).    
04f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0500: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0510: 20 20 20 20 20 20 20 20 20 20 28 61 6e 63 68 6f            (ancho
0520: 72 73 20 27 28 29 29 20 29 0a 20 20 20 20 20 20  rs '()) ).      
0530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0540: 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 75           (if (nu
0550: 6c 6c 3f 20 61 6c 6c 2d 70 6f 69 6e 74 73 29 0a  ll? all-points).
0560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0570: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0580: 20 61 6e 63 68 6f 72 73 0a 20 20 20 20 20 20 20   anchors.       
0590: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
05a0: 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74            (point
05b0: 2d 6c 6f 6f 70 20 28 63 64 64 72 20 28 63 64 64  -loop (cddr (cdd
05c0: 64 64 72 20 61 6c 6c 2d 70 6f 69 6e 74 73 29 29  ddr all-points))
05d0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
05e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
05f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61                (a
0600: 70 70 65 6e 64 20 61 6e 63 68 6f 72 73 20 0a 20  ppend anchors . 
0610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0630: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0640: 20 20 20 20 28 6c 69 73 74 20 28 63 61 64 64 72      (list (caddr
0650: 20 61 6c 6c 2d 70 6f 69 6e 74 73 29 0a 20 20 20   all-points).   
0660: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0670: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0680: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0690: 20 20 20 20 20 20 20 20 28 63 61 64 64 64 72 20          (cadddr 
06a0: 61 6c 6c 2d 70 6f 69 6e 74 73 29 0a 20 20 20 20  all-points).    
06b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
06c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
06d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
06e0: 20 20 20 20 20 20 20 28 63 61 64 64 72 20 61 6c         (caddr al
06f0: 6c 2d 70 6f 69 6e 74 73 29 0a 20 20 20 20 20 20  l-points).      
0700: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0710: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0720: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0730: 20 20 20 20 20 28 63 61 64 64 64 72 20 61 6c 6c       (cadddr all
0740: 2d 70 6f 69 6e 74 73 29 0a 20 20 20 20 20 20 20  -points).       
0750: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0760: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0770: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0780: 20 20 20 20 28 63 61 64 64 72 20 61 6c 6c 2d 70      (caddr all-p
0790: 6f 69 6e 74 73 29 0a 20 20 20 20 20 20 20 20 20  oints).         
07a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
07b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
07c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
07d0: 20 20 28 63 61 64 64 64 72 20 61 6c 6c 2d 70 6f    (cadddr all-po
07e0: 69 6e 74 73 29 20 29 29 29 29 29 29 29 0a 20 20  ints) ))))))).  
07f0: 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73            (unles
0800: 73 20 28 3c 20 28 63 61 64 72 20 73 74 72 6f 6b  s (< (cadr strok
0810: 65 2d 69 6e 66 6f 29 20 31 38 29 20 3b 20 6d 75  e-info) 18) ; mu
0820: 73 74 20 61 74 20 6c 65 61 73 74 20 62 65 20 61  st at least be a
0830: 20 74 72 69 61 6e 67 6c 65 0a 20 20 20 20 20 20   triangle.      
0840: 20 20 20 20 20 20 20 20 28 67 69 6d 70 2d 76 65          (gimp-ve
0850: 63 74 6f 72 73 2d 73 74 72 6f 6b 65 2d 6e 65 77  ctors-stroke-new
0860: 2d 66 72 6f 6d 2d 70 6f 69 6e 74 73 20 6e 65 77  -from-points new
0870: 2d 70 61 74 68 20 20 0a 20 20 20 20 20 20 20 20  -path  .        
0880: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0890: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
08a0: 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20             (car 
08b0: 73 74 72 6f 6b 65 2d 69 6e 66 6f 29 20 20 0a 20  stroke-info)  . 
08c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
08d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
08e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
08f0: 20 20 28 6c 65 6e 67 74 68 20 6e 65 77 2d 70 6f    (length new-po
0900: 69 6e 74 73 29 0a 20 20 20 20 20 20 20 20 20 20  ints).          
0910: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0930: 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 2d 3e           (list->
0940: 76 65 63 74 6f 72 20 6e 65 77 2d 70 6f 69 6e 74  vector new-point
0950: 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  s).             
0960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0970: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0980: 20 20 20 20 20 20 28 63 61 64 64 64 72 20 73 74        (cadddr st
0990: 72 6f 6b 65 2d 69 6e 66 6f 29 20 29 29 0a 20 20  roke-info) )).  
09a0: 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 70 20            (loop 
09b0: 28 63 64 72 20 73 74 72 6f 6b 65 73 29 29 20 29  (cdr strokes)) )
09c0: 29 29 29 29 0a 0a 20 20 28 6c 65 74 2a 20 28 28  ))))..  (let* ((
09d0: 6c 61 79 65 72 20 30 29 0a 20 20 20 20 20 20 20  layer 0).       
09e0: 20 20 28 71 2d 69 6d 61 67 65 20 30 29 0a 20 20    (q-image 0).  
09f0: 20 20 20 20 20 20 20 28 71 2d 6c 61 79 65 72 20         (q-layer 
0a00: 30 29 0a 20 20 20 20 20 20 20 20 20 28 71 2d 73  0).         (q-s
0a10: 65 6c 20 30 29 0a 20 20 20 20 20 20 20 20 20 28  el 0).         (
0a20: 6f 72 69 67 2d 73 65 6c 20 30 29 0a 20 20 20 20  orig-sel 0).    
0a30: 20 20 20 20 20 28 66 6c 6f 61 74 69 6e 67 2d 73       (floating-s
0a40: 65 6c 20 30 29 0a 20 20 20 20 20 20 20 20 20 28  el 0).         (
0a50: 71 2d 6d 61 73 6b 20 23 66 29 0a 20 20 20 20 20  q-mask #f).     
0a60: 20 20 20 20 28 62 75 66 66 65 72 20 22 22 29 20      (buffer "") 
0a70: 29 0a 20 20 20 20 28 67 69 6d 70 2d 69 6d 61 67  ).    (gimp-imag
0a80: 65 2d 75 6e 64 6f 2d 67 72 6f 75 70 2d 73 74 61  e-undo-group-sta
0a90: 72 74 20 6f 72 69 67 2d 69 6d 61 67 65 29 0a 20  rt orig-image). 
0aa0: 20 20 20 28 73 65 74 21 20 6f 72 69 67 2d 73 65     (set! orig-se
0ab0: 6c 20 28 63 61 72 20 28 67 69 6d 70 2d 73 65 6c  l (car (gimp-sel
0ac0: 65 63 74 69 6f 6e 2d 73 61 76 65 20 6f 72 69 67  ection-save orig
0ad0: 2d 69 6d 61 67 65 29 29 29 0a 20 20 20 20 28 67  -image))).    (g
0ae0: 69 6d 70 2d 73 65 6c 65 63 74 69 6f 6e 2d 6e 6f  imp-selection-no
0af0: 6e 65 20 6f 72 69 67 2d 69 6d 61 67 65 29 0a 20  ne orig-image). 
0b00: 20 20 20 28 73 65 74 21 20 62 75 66 66 65 72 20     (set! buffer 
0b10: 28 63 61 72 20 28 67 69 6d 70 2d 65 64 69 74 2d  (car (gimp-edit-
0b20: 6e 61 6d 65 64 2d 63 6f 70 79 20 64 72 61 77 61  named-copy drawa
0b30: 62 6c 65 20 22 74 65 6d 70 22 29 29 29 0a 20 20  ble "temp"))).  
0b40: 20 20 28 73 65 74 21 20 71 2d 69 6d 61 67 65 20    (set! q-image 
0b50: 28 63 61 72 20 28 67 69 6d 70 2d 65 64 69 74 2d  (car (gimp-edit-
0b60: 6e 61 6d 65 64 2d 70 61 73 74 65 2d 61 73 2d 6e  named-paste-as-n
0b70: 65 77 20 62 75 66 66 65 72 29 29 29 0a 20 20 20  ew buffer))).   
0b80: 20 28 67 69 6d 70 2d 69 6d 61 67 65 2d 75 6e 64   (gimp-image-und
0b90: 6f 2d 64 69 73 61 62 6c 65 20 71 2d 69 6d 61 67  o-disable q-imag
0ba0: 65 29 0a 20 20 20 20 28 67 69 6d 70 2d 62 75 66  e).    (gimp-buf
0bb0: 66 65 72 2d 64 65 6c 65 74 65 20 62 75 66 66 65  fer-delete buffe
0bc0: 72 29 0a 20 20 20 20 28 73 65 74 21 20 71 2d 6c  r).    (set! q-l
0bd0: 61 79 65 72 20 28 63 61 72 20 28 67 69 6d 70 2d  ayer (car (gimp-
0be0: 69 6d 61 67 65 2d 67 65 74 2d 61 63 74 69 76 65  image-get-active
0bf0: 2d 6c 61 79 65 72 20 71 2d 69 6d 61 67 65 29 29  -layer q-image))
0c00: 29 0a 20 20 20 20 28 73 65 74 21 20 62 75 66 66  ).    (set! buff
0c10: 65 72 20 28 63 61 72 20 28 67 69 6d 70 2d 65 64  er (car (gimp-ed
0c20: 69 74 2d 6e 61 6d 65 64 2d 63 6f 70 79 20 6f 72  it-named-copy or
0c30: 69 67 2d 73 65 6c 20 22 74 65 6d 70 22 29 29 29  ig-sel "temp")))
0c40: 0a 20 20 20 20 28 73 65 74 21 20 71 2d 73 65 6c  .    (set! q-sel
0c50: 20 28 63 61 72 20 28 67 69 6d 70 2d 73 65 6c 65   (car (gimp-sele
0c60: 63 74 69 6f 6e 2d 73 61 76 65 20 71 2d 69 6d 61  ction-save q-ima
0c70: 67 65 29 29 29 0a 20 20 20 20 28 73 65 74 21 20  ge))).    (set! 
0c80: 66 6c 6f 61 74 69 6e 67 2d 73 65 6c 20 28 63 61  floating-sel (ca
0c90: 72 20 28 67 69 6d 70 2d 65 64 69 74 2d 6e 61 6d  r (gimp-edit-nam
0ca0: 65 64 2d 70 61 73 74 65 20 71 2d 73 65 6c 20 62  ed-paste q-sel b
0cb0: 75 66 66 65 72 20 46 41 4c 53 45 29 29 29 0a 20  uffer FALSE))). 
0cc0: 20 20 20 28 67 69 6d 70 2d 62 75 66 66 65 72 2d     (gimp-buffer-
0cd0: 64 65 6c 65 74 65 20 62 75 66 66 65 72 29 0a 20  delete buffer). 
0ce0: 20 20 20 28 67 69 6d 70 2d 66 6c 6f 61 74 69 6e     (gimp-floatin
0cf0: 67 2d 73 65 6c 2d 61 6e 63 68 6f 72 20 66 6c 6f  g-sel-anchor flo
0d00: 61 74 69 6e 67 2d 73 65 6c 29 0a 20 20 20 20 28  ating-sel).    (
0d10: 75 6e 6c 65 73 73 20 28 7a 65 72 6f 3f 20 28 63  unless (zero? (c
0d20: 61 72 20 28 67 69 6d 70 2d 64 72 61 77 61 62 6c  ar (gimp-drawabl
0d30: 65 2d 68 61 73 2d 61 6c 70 68 61 20 71 2d 6c 61  e-has-alpha q-la
0d40: 79 65 72 29 29 29 0a 20 20 20 20 20 20 28 73 65  yer))).      (se
0d50: 74 21 20 71 2d 6d 61 73 6b 20 28 63 61 72 20 28  t! q-mask (car (
0d60: 67 69 6d 70 2d 6c 61 79 65 72 2d 63 72 65 61 74  gimp-layer-creat
0d70: 65 2d 6d 61 73 6b 20 71 2d 6c 61 79 65 72 20 41  e-mask q-layer A
0d80: 44 44 2d 41 4c 50 48 41 2d 54 52 41 4e 53 46 45  DD-ALPHA-TRANSFE
0d90: 52 2d 4d 41 53 4b 29 29 29 0a 20 20 20 20 20 20  R-MASK))).      
0da0: 28 67 69 6d 70 2d 6c 61 79 65 72 2d 61 64 64 2d  (gimp-layer-add-
0db0: 6d 61 73 6b 20 71 2d 6c 61 79 65 72 20 71 2d 6d  mask q-layer q-m
0dc0: 61 73 6b 29 20 29 0a 20 20 20 20 28 75 6e 6c 65  ask) ).    (unle
0dd0: 73 73 20 28 7a 65 72 6f 3f 20 6d 61 73 6b 2d 73  ss (zero? mask-s
0de0: 65 6c 65 63 74 65 64 29 0a 20 20 20 20 20 20 28  elected).      (
0df0: 67 69 6d 70 2d 73 65 6c 65 63 74 69 6f 6e 2d 6c  gimp-selection-l
0e00: 6f 61 64 20 71 2d 73 65 6c 29 0a 20 20 20 20 20  oad q-sel).     
0e10: 20 28 67 69 6d 70 2d 73 65 6c 65 63 74 69 6f 6e   (gimp-selection
0e20: 2d 69 6e 76 65 72 74 20 71 2d 69 6d 61 67 65 29  -invert q-image)
0e30: 20 29 0a 20 20 20 20 28 69 66 20 28 7a 65 72 6f   ).    (if (zero
0e40: 3f 20 72 6f 75 6e 64 65 64 29 0a 20 20 20 20 20  ? rounded).     
0e50: 20 28 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20   (begin.        
0e60: 28 75 6e 6c 65 73 73 20 28 7a 65 72 6f 3f 20 73  (unless (zero? s
0e70: 6d 6f 6f 74 68 69 6e 67 29 0a 20 20 20 20 20 20  moothing).      
0e80: 20 20 20 20 28 70 6c 75 67 2d 69 6e 2d 67 61 75      (plug-in-gau
0e90: 73 73 20 52 55 4e 2d 4e 4f 4e 49 4e 54 45 52 41  ss RUN-NONINTERA
0ea0: 43 54 49 56 45 20 71 2d 69 6d 61 67 65 20 71 2d  CTIVE q-image q-
0eb0: 6c 61 79 65 72 20 73 6d 6f 6f 74 68 69 6e 67 20  layer smoothing 
0ec0: 73 6d 6f 6f 74 68 69 6e 67 20 30 29 20 29 0a 20  smoothing 0) ). 
0ed0: 20 20 20 20 20 20 20 28 67 69 6d 70 2d 69 6d 61         (gimp-ima
0ee0: 67 65 2d 63 6f 6e 76 65 72 74 2d 69 6e 64 65 78  ge-convert-index
0ef0: 65 64 20 71 2d 69 6d 61 67 65 20 4e 4f 2d 44 49  ed q-image NO-DI
0f00: 54 48 45 52 20 4d 41 4b 45 2d 50 41 4c 45 54 54  THER MAKE-PALETT
0f10: 45 20 6e 75 6d 2d 63 6f 6c 6f 72 73 20 46 41 4c  E num-colors FAL
0f20: 53 45 20 46 41 4c 53 45 20 22 22 29 0a 20 20 20  SE FALSE "").   
0f30: 20 20 20 20 20 29 0a 20 20 20 20 20 20 28 62 65       ).      (be
0f40: 67 69 6e 0a 20 20 20 20 20 20 20 20 28 67 69 6d  gin.        (gim
0f50: 70 2d 69 6d 61 67 65 2d 63 6f 6e 76 65 72 74 2d  p-image-convert-
0f60: 69 6e 64 65 78 65 64 20 71 2d 69 6d 61 67 65 20  indexed q-image 
0f70: 4e 4f 2d 44 49 54 48 45 52 20 4d 41 4b 45 2d 50  NO-DITHER MAKE-P
0f80: 41 4c 45 54 54 45 20 6e 75 6d 2d 63 6f 6c 6f 72  ALETTE num-color
0f90: 73 20 46 41 4c 53 45 20 46 41 4c 53 45 20 22 22  s FALSE FALSE ""
0fa0: 29 0a 20 20 20 20 20 20 20 20 28 67 69 6d 70 2d  ).        (gimp-
0fb0: 69 6d 61 67 65 2d 63 6f 6e 76 65 72 74 2d 72 67  image-convert-rg
0fc0: 62 20 71 2d 69 6d 61 67 65 29 0a 20 20 20 20 20  b q-image).     
0fd0: 20 20 20 28 75 6e 6c 65 73 73 20 28 7a 65 72 6f     (unless (zero
0fe0: 3f 20 73 6d 6f 6f 74 68 69 6e 67 29 0a 20 20 20  ? smoothing).   
0ff0: 20 20 20 20 20 20 20 28 70 6c 75 67 2d 69 6e 2d         (plug-in-
1000: 67 61 75 73 73 20 52 55 4e 2d 4e 4f 4e 49 4e 54  gauss RUN-NONINT
1010: 45 52 41 43 54 49 56 45 20 71 2d 69 6d 61 67 65  ERACTIVE q-image
1020: 20 71 2d 6c 61 79 65 72 20 73 6d 6f 6f 74 68 69   q-layer smoothi
1030: 6e 67 20 73 6d 6f 6f 74 68 69 6e 67 20 30 29 20  ng smoothing 0) 
1040: 29 0a 20 20 20 20 20 20 20 20 28 67 69 6d 70 2d  ).        (gimp-
1050: 69 6d 61 67 65 2d 63 6f 6e 76 65 72 74 2d 69 6e  image-convert-in
1060: 64 65 78 65 64 20 71 2d 69 6d 61 67 65 20 4e 4f  dexed q-image NO
1070: 2d 44 49 54 48 45 52 20 4d 41 4b 45 2d 50 41 4c  -DITHER MAKE-PAL
1080: 45 54 54 45 20 6e 75 6d 2d 63 6f 6c 6f 72 73 20  ETTE num-colors 
1090: 46 41 4c 53 45 20 46 41 4c 53 45 20 22 22 29 0a  FALSE FALSE "").
10a0: 20 20 20 20 20 20 20 20 29 29 0a 20 20 20 20 28          )).    (
10b0: 6c 65 74 20 28 28 63 6f 6c 6f 72 73 20 28 76 65  let ((colors (ve
10c0: 63 74 6f 72 2d 3e 6c 69 73 74 20 28 63 61 64 72  ctor->list (cadr
10d0: 20 28 67 69 6d 70 2d 69 6d 61 67 65 2d 67 65 74   (gimp-image-get
10e0: 2d 63 6f 6c 6f 72 6d 61 70 20 71 2d 69 6d 61 67  -colormap q-imag
10f0: 65 29 29 29 29 29 0a 20 20 20 20 20 20 28 67 69  e))))).      (gi
1100: 6d 70 2d 69 6d 61 67 65 2d 63 6f 6e 76 65 72 74  mp-image-convert
1110: 2d 72 67 62 20 71 2d 69 6d 61 67 65 29 20 0a 20  -rgb q-image) . 
1120: 20 20 20 20 20 28 67 69 6d 70 2d 73 65 6c 65 63       (gimp-selec
1130: 74 69 6f 6e 2d 6e 6f 6e 65 20 71 2d 69 6d 61 67  tion-none q-imag
1140: 65 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73  e).      (unless
1150: 20 28 7a 65 72 6f 3f 20 70 6f 6c 79 67 6f 6e 61   (zero? polygona
1160: 6c 29 0a 20 20 20 20 20 20 20 20 28 67 69 6d 70  l).        (gimp
1170: 2d 63 6f 6e 74 65 78 74 2d 70 75 73 68 29 0a 20  -context-push). 
1180: 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 65         (let ((ne
1190: 77 2d 6c 61 79 65 72 20 28 63 61 72 20 28 67 69  w-layer (car (gi
11a0: 6d 70 2d 6c 61 79 65 72 2d 6e 65 77 20 71 2d 69  mp-layer-new q-i
11b0: 6d 61 67 65 20 0a 20 20 20 20 20 20 20 20 20 20  mage .          
11c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11e0: 20 20 20 20 28 63 61 72 20 28 67 69 6d 70 2d 64      (car (gimp-d
11f0: 72 61 77 61 62 6c 65 2d 77 69 64 74 68 20 71 2d  rawable-width q-
1200: 6c 61 79 65 72 29 29 0a 20 20 20 20 20 20 20 20  layer)).        
1210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1230: 20 20 20 20 20 20 28 63 61 72 20 28 67 69 6d 70        (car (gimp
1240: 2d 64 72 61 77 61 62 6c 65 2d 68 65 69 67 68 74  -drawable-height
1250: 20 71 2d 6c 61 79 65 72 29 29 0a 20 20 20 20 20   q-layer)).     
1260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1270: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1280: 20 20 20 20 20 20 20 20 20 52 47 42 41 2d 49 4d           RGBA-IM
1290: 41 47 45 0a 20 20 20 20 20 20 20 20 20 20 20 20  AGE.            
12a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12c0: 20 20 22 46 69 6c 6c 22 0a 20 20 20 20 20 20 20    "Fill".       
12d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
12f0: 20 20 20 20 20 20 20 31 30 30 0a 20 20 20 20 20         100.     
1300: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1310: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1320: 20 20 20 20 20 20 20 20 20 4e 4f 52 4d 41 4c 2d           NORMAL-
1330: 4d 4f 44 45 20 29 29 29 29 0a 20 20 20 20 20 20  MODE )))).      
1340: 20 20 20 20 28 67 69 6d 70 2d 64 72 61 77 61 62      (gimp-drawab
1350: 6c 65 2d 66 69 6c 6c 20 6e 65 77 2d 6c 61 79 65  le-fill new-laye
1360: 72 20 54 52 41 4e 53 50 41 52 45 4e 54 2d 46 49  r TRANSPARENT-FI
1370: 4c 4c 29 0a 20 20 20 20 20 20 20 20 20 20 28 67  LL).          (g
1380: 69 6d 70 2d 69 6d 61 67 65 2d 61 64 64 2d 6c 61  imp-image-add-la
1390: 79 65 72 20 71 2d 69 6d 61 67 65 20 6e 65 77 2d  yer q-image new-
13a0: 6c 61 79 65 72 20 2d 31 29 0a 20 20 20 20 20 20  layer -1).      
13b0: 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 67 2d      (let ((prog-
13c0: 6d 61 78 20 28 6c 65 6e 67 74 68 20 63 6f 6c 6f  max (length colo
13d0: 72 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20  rs))).          
13e0: 20 20 28 6c 65 74 20 63 6f 6c 6f 72 73 2d 6c 6f    (let colors-lo
13f0: 6f 70 20 28 28 63 6f 6c 6f 72 73 20 63 6f 6c 6f  op ((colors colo
1400: 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  rs).            
1410: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1420: 20 20 28 70 72 6f 67 2d 63 75 72 72 65 6e 74 20    (prog-current 
1430: 30 29 20 29 0a 20 20 20 20 20 20 20 20 20 20 20  0) ).           
1440: 20 20 20 28 75 6e 6c 65 73 73 20 28 6e 75 6c 6c     (unless (null
1450: 3f 20 63 6f 6c 6f 72 73 29 20 20 20 20 20 20 20  ? colors)       
1460: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1470: 20 28 67 69 6d 70 2d 63 6f 6e 74 65 78 74 2d 73   (gimp-context-s
1480: 65 74 2d 66 6f 72 65 67 72 6f 75 6e 64 20 28 6c  et-foreground (l
1490: 69 73 74 20 28 63 61 72 20 63 6f 6c 6f 72 73 29  ist (car colors)
14a0: 20 28 63 61 64 72 20 63 6f 6c 6f 72 73 29 20 28   (cadr colors) (
14b0: 63 61 64 64 72 20 63 6f 6c 6f 72 73 29 29 29 0a  caddr colors))).
14c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14d0: 28 67 69 6d 70 2d 69 6d 61 67 65 2d 73 65 6c 65  (gimp-image-sele
14e0: 63 74 2d 63 6f 6c 6f 72 20 71 2d 69 6d 61 67 65  ct-color q-image
14f0: 20 43 48 41 4e 4e 45 4c 2d 4f 50 2d 52 45 50 4c   CHANNEL-OP-REPL
1500: 41 43 45 20 71 2d 6c 61 79 65 72 20 28 6c 69 73  ACE q-layer (lis
1510: 74 20 28 63 61 72 20 63 6f 6c 6f 72 73 29 0a 20  t (car colors). 
1520: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1540: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1550: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1570: 20 28 63 61 64 72 20 63 6f 6c 6f 72 73 29 0a 20   (cadr colors). 
1580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1590: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
15d0: 20 28 63 61 64 64 72 20 63 6f 6c 6f 72 73 29 20   (caddr colors) 
15e0: 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  )).             
15f0: 20 20 20 28 70 6c 75 67 2d 69 6e 2d 73 65 6c 32     (plug-in-sel2
1600: 70 61 74 68 20 31 20 71 2d 69 6d 61 67 65 20 71  path 1 q-image q
1610: 2d 6c 61 79 65 72 29 0a 20 20 20 20 20 20 20 20  -layer).        
1620: 20 20 20 20 20 20 20 20 28 67 69 6d 70 2d 70 72          (gimp-pr
1630: 6f 67 72 65 73 73 2d 73 65 74 2d 74 65 78 74 20  ogress-set-text 
1640: 22 43 6f 6e 76 65 72 74 69 6e 67 20 74 6f 20 70  "Converting to p
1650: 61 74 68 73 22 29 0a 20 20 20 20 20 20 20 20 20  aths").         
1660: 20 20 20 20 20 20 20 28 67 69 6d 70 2d 70 72 6f         (gimp-pro
1670: 67 72 65 73 73 2d 75 70 64 61 74 65 20 28 2f 20  gress-update (/ 
1680: 70 72 6f 67 2d 63 75 72 72 65 6e 74 20 70 72 6f  prog-current pro
1690: 67 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20  g-max)).        
16a0: 20 20 20 20 20 20 20 20 28 67 69 6d 70 2d 69 6d          (gimp-im
16b0: 61 67 65 2d 73 65 6c 65 63 74 2d 69 74 65 6d 20  age-select-item 
16c0: 71 2d 69 6d 61 67 65 20 0a 20 20 20 20 20 20 20  q-image .       
16d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16f0: 20 43 48 41 4e 4e 45 4c 2d 4f 50 2d 52 45 50 4c   CHANNEL-OP-REPL
1700: 41 43 45 20 0a 20 20 20 20 20 20 20 20 20 20 20  ACE .           
1710: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1720: 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f               (po
1730: 6c 79 67 6f 6e 61 6c 69 7a 65 20 71 2d 69 6d 61  lygonalize q-ima
1740: 67 65 20 28 63 61 72 20 28 67 69 6d 70 2d 69 6d  ge (car (gimp-im
1750: 61 67 65 2d 67 65 74 2d 61 63 74 69 76 65 2d 76  age-get-active-v
1760: 65 63 74 6f 72 73 20 71 2d 69 6d 61 67 65 29 29  ectors q-image))
1770: 29 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  ) ).            
1780: 20 20 20 20 28 67 69 6d 70 2d 65 64 69 74 2d 66      (gimp-edit-f
1790: 69 6c 6c 20 6e 65 77 2d 6c 61 79 65 72 20 46 4f  ill new-layer FO
17a0: 52 45 47 52 4f 55 4e 44 2d 46 49 4c 4c 29 0a 20  REGROUND-FILL). 
17b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28                 (
17c0: 63 6f 6c 6f 72 73 2d 6c 6f 6f 70 20 28 63 64 64  colors-loop (cdd
17d0: 64 72 20 63 6f 6c 6f 72 73 29 20 28 2b 20 70 72  dr colors) (+ pr
17e0: 6f 67 2d 63 75 72 72 65 6e 74 20 33 29 29 20 29  og-current 3)) )
17f0: 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 69  )).          (gi
1800: 6d 70 2d 70 72 6f 67 72 65 73 73 2d 73 65 74 2d  mp-progress-set-
1810: 74 65 78 74 20 22 46 69 6c 6c 69 6e 67 20 67 61  text "Filling ga
1820: 70 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 28  ps").          (
1830: 67 69 6d 70 2d 73 65 6c 65 63 74 69 6f 6e 2d 6e  gimp-selection-n
1840: 6f 6e 65 20 71 2d 69 6d 61 67 65 29 0a 20 20 20  one q-image).   
1850: 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3c         (while (<
1860: 20 28 63 61 72 20 28 67 69 6d 70 2d 68 69 73 74   (car (gimp-hist
1870: 6f 67 72 61 6d 20 6e 65 77 2d 6c 61 79 65 72 20  ogram new-layer 
1880: 48 49 53 54 4f 47 52 41 4d 2d 41 4c 50 48 41 20  HISTOGRAM-ALPHA 
1890: 30 20 32 35 35 29 29 20 32 35 35 2e 30 29 0a 20  0 255)) 255.0). 
18a0: 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 75 67             (plug
18b0: 2d 69 6e 2d 76 70 72 6f 70 61 67 61 74 65 20 52  -in-vpropagate R
18c0: 55 4e 2d 4e 4f 4e 49 4e 54 45 52 41 43 54 49 56  UN-NONINTERACTIV
18d0: 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  E.              
18e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f0: 20 20 71 2d 69 6d 61 67 65 0a 20 20 20 20 20 20    q-image.      
1900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1910: 20 20 20 20 20 20 20 20 20 20 6e 65 77 2d 6c 61            new-la
1920: 79 65 72 20 0a 20 20 20 20 20 20 20 20 20 20 20  yer .           
1930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1940: 20 20 20 20 20 36 20 3b 20 6d 6f 72 65 20 6f 70       6 ; more op
1950: 61 71 75 65 0a 20 20 20 20 20 20 20 20 20 20 20  aque.           
1960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1970: 20 20 20 20 20 33 20 3b 20 77 69 74 68 20 61 6c       3 ; with al
1980: 70 68 61 0a 20 20 20 20 20 20 20 20 20 20 20 20  pha.            
1990: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a0: 20 20 20 20 31 2e 30 20 3b 20 6d 61 78 69 6d 75      1.0 ; maximu
19b0: 6d 20 61 6d 6f 75 6e 74 0a 20 20 20 20 20 20 20  m amount.       
19c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d0: 20 20 20 20 20 20 20 20 20 31 35 20 3b 20 61 6c           15 ; al
19e0: 6c 20 64 69 72 65 63 74 69 6f 6e 73 0a 20 20 20  l directions.   
19f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a00: 20 20 20 20 20 20 20 20 20 20 20 20 20 30 0a 20               0. 
1a10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 32                 2
1a30: 35 35 20 29 29 0a 20 20 20 20 20 20 20 20 20 20  55 )).          
1a40: 28 77 68 65 6e 20 71 2d 6d 61 73 6b 0a 20 20 20  (when q-mask.   
1a50: 20 20 20 20 20 20 20 20 20 28 67 69 6d 70 2d 73           (gimp-s
1a60: 65 6c 65 63 74 69 6f 6e 2d 6c 6f 61 64 20 28 63  election-load (c
1a70: 61 72 20 28 67 69 6d 70 2d 6c 61 79 65 72 2d 67  ar (gimp-layer-g
1a80: 65 74 2d 6d 61 73 6b 20 71 2d 6c 61 79 65 72 29  et-mask q-layer)
1a90: 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28  )).            (
1aa0: 67 69 6d 70 2d 6c 61 79 65 72 2d 61 64 64 2d 6d  gimp-layer-add-m
1ab0: 61 73 6b 20 6e 65 77 2d 6c 61 79 65 72 20 28 63  ask new-layer (c
1ac0: 61 72 20 28 67 69 6d 70 2d 6c 61 79 65 72 2d 63  ar (gimp-layer-c
1ad0: 72 65 61 74 65 2d 6d 61 73 6b 20 6e 65 77 2d 6c  reate-mask new-l
1ae0: 61 79 65 72 20 41 44 44 2d 53 45 4c 45 43 54 49  ayer ADD-SELECTI
1af0: 4f 4e 2d 4d 41 53 4b 29 29 29 0a 20 20 20 20 20  ON-MASK))).     
1b00: 20 20 20 20 20 20 20 28 67 69 6d 70 2d 73 65 6c         (gimp-sel
1b10: 65 63 74 69 6f 6e 2d 6e 6f 6e 65 20 71 2d 69 6d  ection-none q-im
1b20: 61 67 65 29 20 29 0a 20 20 20 20 20 20 20 20 20  age) ).         
1b30: 20 28 67 69 6d 70 2d 69 6d 61 67 65 2d 72 65 6d   (gimp-image-rem
1b40: 6f 76 65 2d 6c 61 79 65 72 20 71 2d 69 6d 61 67  ove-layer q-imag
1b50: 65 20 71 2d 6c 61 79 65 72 29 0a 20 20 20 20 20  e q-layer).     
1b60: 20 20 20 20 20 28 73 65 74 21 20 71 2d 6c 61 79       (set! q-lay
1b70: 65 72 20 6e 65 77 2d 6c 61 79 65 72 29 20 29 0a  er new-layer) ).
1b80: 20 20 20 20 20 20 20 20 28 67 69 6d 70 2d 63 6f          (gimp-co
1b90: 6e 74 65 78 74 2d 70 6f 70 29 20 29 29 0a 20 20  ntext-pop) )).  
1ba0: 20 20 28 77 68 65 6e 20 71 2d 6d 61 73 6b 0a 20    (when q-mask. 
1bb0: 20 20 20 20 20 28 67 69 6d 70 2d 6c 61 79 65 72       (gimp-layer
1bc0: 2d 72 65 6d 6f 76 65 2d 6d 61 73 6b 20 71 2d 6c  -remove-mask q-l
1bd0: 61 79 65 72 20 4d 41 53 4b 2d 41 50 50 4c 59 29  ayer MASK-APPLY)
1be0: 20 29 0a 20 20 20 20 28 73 65 74 21 20 62 75 66   ).    (set! buf
1bf0: 66 65 72 20 28 63 61 72 20 28 67 69 6d 70 2d 65  fer (car (gimp-e
1c00: 64 69 74 2d 6e 61 6d 65 64 2d 63 6f 70 79 20 71  dit-named-copy q
1c10: 2d 6c 61 79 65 72 20 22 74 65 6d 70 22 29 29 29  -layer "temp")))
1c20: 0a 20 20 20 20 28 73 65 74 21 20 66 6c 6f 61 74  .    (set! float
1c30: 69 6e 67 2d 73 65 6c 20 28 63 61 72 20 28 67 69  ing-sel (car (gi
1c40: 6d 70 2d 65 64 69 74 2d 6e 61 6d 65 64 2d 70 61  mp-edit-named-pa
1c50: 73 74 65 20 64 72 61 77 61 62 6c 65 20 62 75 66  ste drawable buf
1c60: 66 65 72 20 54 52 55 45 29 29 29 0a 20 20 20 20  fer TRUE))).    
1c70: 28 77 68 65 6e 20 28 7a 65 72 6f 3f 20 6d 61 73  (when (zero? mas
1c80: 6b 2d 73 65 6c 65 63 74 65 64 29 0a 20 20 20 20  k-selected).    
1c90: 20 20 28 67 69 6d 70 2d 73 65 6c 65 63 74 69 6f    (gimp-selectio
1ca0: 6e 2d 6c 6f 61 64 20 6f 72 69 67 2d 73 65 6c 29  n-load orig-sel)
1cb0: 20 29 0a 20 20 20 20 28 67 69 6d 70 2d 66 6c 6f   ).    (gimp-flo
1cc0: 61 74 69 6e 67 2d 73 65 6c 2d 61 6e 63 68 6f 72  ating-sel-anchor
1cd0: 20 66 6c 6f 61 74 69 6e 67 2d 73 65 6c 29 0a 20   floating-sel). 
1ce0: 20 20 20 28 67 69 6d 70 2d 69 6d 61 67 65 2d 75     (gimp-image-u
1cf0: 6e 64 6f 2d 65 6e 61 62 6c 65 20 71 2d 69 6d 61  ndo-enable q-ima
1d00: 67 65 29 0a 20 20 20 20 28 67 69 6d 70 2d 69 6d  ge).    (gimp-im
1d10: 61 67 65 2d 64 65 6c 65 74 65 20 71 2d 69 6d 61  age-delete q-ima
1d20: 67 65 29 0a 20 20 20 20 28 67 69 6d 70 2d 73 65  ge).    (gimp-se
1d30: 6c 65 63 74 69 6f 6e 2d 6c 6f 61 64 20 6f 72 69  lection-load ori
1d40: 67 2d 73 65 6c 29 0a 20 20 20 20 28 67 69 6d 70  g-sel).    (gimp
1d50: 2d 69 6d 61 67 65 2d 72 65 6d 6f 76 65 2d 63 68  -image-remove-ch
1d60: 61 6e 6e 65 6c 20 6f 72 69 67 2d 69 6d 61 67 65  annel orig-image
1d70: 20 6f 72 69 67 2d 73 65 6c 29 0a 20 20 20 20 28   orig-sel).    (
1d80: 67 69 6d 70 2d 62 75 66 66 65 72 2d 64 65 6c 65  gimp-buffer-dele
1d90: 74 65 20 62 75 66 66 65 72 29 0a 20 20 20 20 28  te buffer).    (
1da0: 67 69 6d 70 2d 70 72 6f 67 72 65 73 73 2d 65 6e  gimp-progress-en
1db0: 64 29 0a 20 20 20 20 28 67 69 6d 70 2d 69 6d 61  d).    (gimp-ima
1dc0: 67 65 2d 75 6e 64 6f 2d 67 72 6f 75 70 2d 65 6e  ge-undo-group-en
1dd0: 64 20 6f 72 69 67 2d 69 6d 61 67 65 29 0a 20 20  d orig-image).  
1de0: 20 20 28 67 69 6d 70 2d 64 69 73 70 6c 61 79 73    (gimp-displays
1df0: 2d 66 6c 75 73 68 29 0a 20 20 20 20 29 0a 20 20  -flush).    ).  
1e00: 29 0a 20 20 20 20 20 20 20 0a 28 73 63 72 69 70  ).       .(scrip
1e10: 74 2d 66 75 2d 72 65 67 69 73 74 65 72 20 22 73  t-fu-register "s
1e20: 63 72 69 70 74 2d 66 75 2d 73 67 2d 71 75 61 6e  cript-fu-sg-quan
1e30: 74 69 7a 65 22 0a 20 20 22 51 75 61 6e 74 69 7a  tize".  "Quantiz
1e40: 65 2e 2e 2e 22 0a 20 20 22 51 75 61 6e 74 69 7a  e...".  "Quantiz
1e50: 65 20 6c 61 79 65 72 20 74 6f 20 61 20 73 70 65  e layer to a spe
1e60: 63 69 66 69 65 64 20 6e 75 6d 62 65 72 20 6f 66  cified number of
1e70: 20 63 6f 6c 6f 72 73 22 0a 20 20 22 53 61 75 6c   colors".  "Saul
1e80: 20 47 6f 6f 64 65 22 0a 20 20 22 53 61 75 6c 20   Goode".  "Saul 
1e90: 47 6f 6f 64 65 22 0a 20 20 22 4d 61 79 20 32 30  Goode".  "May 20
1ea0: 31 31 22 0a 20 20 22 52 47 42 2a 2c 20 47 52 41  11".  "RGB*, GRA
1eb0: 59 2a 22 0a 20 20 53 46 2d 49 4d 41 47 45 20 20  Y*".  SF-IMAGE  
1ec0: 20 20 22 49 6d 61 67 65 22 20 30 0a 20 20 53 46    "Image" 0.  SF
1ed0: 2d 44 52 41 57 41 42 4c 45 20 22 4c 61 79 65 72  -DRAWABLE "Layer
1ee0: 22 20 30 0a 20 20 53 46 2d 41 44 4a 55 53 54 4d  " 0.  SF-ADJUSTM
1ef0: 45 4e 54 20 22 4e 75 6d 62 65 72 20 6f 66 20 63  ENT "Number of c
1f00: 6f 6c 6f 72 73 22 20 27 28 31 36 20 32 20 32 35  olors" '(16 2 25
1f10: 36 20 31 20 31 30 20 30 20 30 29 0a 20 20 53 46  6 1 10 0 0).  SF
1f20: 2d 41 44 4a 55 53 54 4d 45 4e 54 20 22 53 6d 6f  -ADJUSTMENT "Smo
1f30: 6f 74 68 69 6e 67 22 20 27 28 30 20 30 20 32 30  othing" '(0 0 20
1f40: 30 20 31 20 31 30 20 30 20 30 29 0a 20 20 53 46  0 1 10 0 0).  SF
1f50: 2d 54 4f 47 47 4c 45 20 22 52 6f 75 6e 64 65 64  -TOGGLE "Rounded
1f60: 3f 22 20 54 52 55 45 0a 20 20 53 46 2d 54 4f 47  ?" TRUE.  SF-TOG
1f70: 47 4c 45 20 22 50 6f 6c 79 67 6f 6e 61 6c 3f 20  GLE "Polygonal? 
1f80: 28 73 6c 6f 77 29 22 20 46 41 4c 53 45 0a 20 20  (slow)" FALSE.  
1f90: 53 46 2d 54 4f 47 47 4c 45 20 22 55 73 65 20 73  SF-TOGGLE "Use s
1fa0: 65 6c 65 63 74 69 6f 6e 20 61 73 20 73 6d 6f 6f  election as smoo
1fb0: 74 68 69 6e 67 20 6d 61 73 6b 22 20 46 41 4c 53  thing mask" FALS
1fc0: 45 0a 20 20 29 0a 0a 28 73 63 72 69 70 74 2d 66  E.  )..(script-f
1fd0: 75 2d 6d 65 6e 75 2d 72 65 67 69 73 74 65 72 20  u-menu-register 
1fe0: 22 73 63 72 69 70 74 2d 66 75 2d 73 67 2d 71 75  "script-fu-sg-qu
1ff0: 61 6e 74 69 7a 65 22 0a 20 22 3c 49 6d 61 67 65  antize". "<Image
2000: 3e 2f 43 6f 6c 6f 72 73 22 0a 20 29 0a           >/Colors". ).