GIMP Script-fu

Hex Artifact Content
Login

Artifact 0dccd13f85d36f9041d23eb23fe1edfdf9d955e4:


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 28 64 65  re details...(de
01f0: 66 69 6e 65 20 28 73 63 72 69 70 74 2d 66 75 2d  fine (script-fu-
0200: 73 67 2d 73 6e 61 70 73 68 6f 74 20 6f 72 69 67  sg-snapshot orig
0210: 2d 69 6d 61 67 65 29 0a 20 20 3b 3b 20 53 61 76  -image).  ;; Sav
0220: 65 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20  e a copy of the 
0230: 69 6d 61 67 65 20 0a 20 20 28 6c 65 74 2a 20 28  image .  (let* (
0240: 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 63 61  (buffer-name (ca
0250: 72 20 28 67 69 6d 70 2d 65 64 69 74 2d 6e 61 6d  r (gimp-edit-nam
0260: 65 64 2d 63 6f 70 79 2d 76 69 73 69 62 6c 65 20  ed-copy-visible 
0270: 6f 72 69 67 2d 69 6d 61 67 65 20 22 73 6e 61 70  orig-image "snap
0280: 73 68 6f 74 22 29 29 29 0a 20 20 20 20 20 20 20  shot"))).       
0290: 20 20 28 69 6d 61 67 65 20 28 63 61 72 20 28 67    (image (car (g
02a0: 69 6d 70 2d 65 64 69 74 2d 6e 61 6d 65 64 2d 70  imp-edit-named-p
02b0: 61 73 74 65 2d 61 73 2d 6e 65 77 20 62 75 66 66  aste-as-new buff
02c0: 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 20  er-name))).     
02d0: 20 20 20 20 28 6c 61 79 65 72 20 28 63 61 72 20      (layer (car 
02e0: 28 67 69 6d 70 2d 69 6d 61 67 65 2d 67 65 74 2d  (gimp-image-get-
02f0: 61 63 74 69 76 65 2d 6c 61 79 65 72 20 69 6d 61  active-layer ima
0300: 67 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28  ge))).         (
0310: 66 69 6c 65 6e 61 6d 65 20 0a 20 20 20 20 20 20  filename .      
0320: 20 20 20 20 20 28 69 66 20 28 7a 65 72 6f 3f 20       (if (zero? 
0330: 28 73 74 72 63 6d 70 20 22 22 20 28 63 61 72 20  (strcmp "" (car 
0340: 28 67 69 6d 70 2d 69 6d 61 67 65 2d 67 65 74 2d  (gimp-image-get-
0350: 66 69 6c 65 6e 61 6d 65 20 6f 72 69 67 2d 69 6d  filename orig-im
0360: 61 67 65 29 29 20 29 29 0a 20 20 20 20 20 20 20  age)) )).       
0370: 20 20 20 20 20 20 22 55 6e 74 69 74 6c 65 64 2e        "Untitled.
0380: 70 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20  png".           
0390: 20 20 28 63 61 72 20 28 67 69 6d 70 2d 69 6d 61    (car (gimp-ima
03a0: 67 65 2d 67 65 74 2d 66 69 6c 65 6e 61 6d 65 20  ge-get-filename 
03b0: 6f 72 69 67 2d 69 6d 61 67 65 29 29 20 29 29 0a  orig-image)) )).
03c0: 20 20 20 20 20 20 20 20 20 28 66 6e 2d 63 6f 6d           (fn-com
03d0: 70 6f 6e 65 6e 74 73 20 28 73 74 72 62 72 65 61  ponents (strbrea
03e0: 6b 75 70 20 66 69 6c 65 6e 61 6d 65 20 22 2e 22  kup filename "."
03f0: 29 29 0a 20 20 20 20 20 20 20 20 20 29 0a 20 20  )).         ).  
0400: 20 20 28 73 65 74 21 20 66 6e 2d 63 6f 6d 70 6f    (set! fn-compo
0410: 6e 65 6e 74 73 20 28 75 6e 62 72 65 61 6b 75 70  nents (unbreakup
0420: 73 74 72 20 28 62 75 74 6c 61 73 74 20 66 6e 2d  str (butlast fn-
0430: 63 6f 6d 70 6f 6e 65 6e 74 73 29 20 22 2e 22 29  components) ".")
0440: 29 0a 20 20 20 20 28 73 65 74 21 20 66 69 6c 65  ).    (set! file
0450: 6e 61 6d 65 20 28 73 74 72 69 6e 67 2d 61 70 70  name (string-app
0460: 65 6e 64 20 66 6e 2d 63 6f 6d 70 6f 6e 65 6e 74  end fn-component
0470: 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  s.              
0480: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0490: 20 20 20 20 22 2d 22 0a 20 20 20 20 20 20 20 20      "-".        
04a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
04b0: 20 20 20 20 20 20 20 20 20 20 28 6e 75 6d 62 65            (numbe
04c0: 72 2d 3e 73 74 72 69 6e 67 20 28 6d 6f 64 75 6c  r->string (modul
04d0: 6f 20 28 72 65 61 6c 74 69 6d 65 29 20 0a 20 20  o (realtime) .  
04e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
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 28 2a 20 36 30 20 36 30          (* 60 60
0520: 20 32 34 29 20 29 29 0a 20 20 20 20 20 20 20 20   24) )).        
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 20 22 2e 70 6e 67 22            ".png"
0550: 20 29 29 0a 20 20 20 20 28 66 69 6c 65 2d 70 6e   )).    (file-pn
0560: 67 2d 73 61 76 65 32 20 52 55 4e 2d 4e 4f 4e 49  g-save2 RUN-NONI
0570: 4e 54 45 52 41 43 54 49 56 45 0a 20 20 20 20 20  NTERACTIVE.     
0580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69                 i
0590: 6d 61 67 65 20 0a 20 20 20 20 20 20 20 20 20 20  mage .          
05a0: 20 20 20 20 20 20 20 20 20 20 6c 61 79 65 72 0a            layer.
05b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
05c0: 20 20 20 20 66 69 6c 65 6e 61 6d 65 20 0a 20 20      filename .  
05d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
05e0: 20 20 66 69 6c 65 6e 61 6d 65 20 0a 20 20 20 20    filename .    
05f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0600: 46 41 4c 53 45 20 3b 20 41 64 61 6d 37 20 69 6e  FALSE ; Adam7 in
0610: 74 65 72 6c 61 63 69 6e 67 3f 0a 20 20 20 20 20  terlacing?.     
0620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 39                 9
0630: 20 20 20 20 20 3b 20 43 6f 6d 70 72 65 73 73 69       ; Compressi
0640: 6f 6e 20 6c 65 76 65 6c 0a 20 20 20 20 20 20 20  on level.       
0650: 20 20 20 20 20 20 20 20 20 20 20 20 20 46 41 4c               FAL
0660: 53 45 20 3b 20 62 4b 47 44 20 63 68 75 6e 6b 3f  SE ; bKGD chunk?
0670: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
0680: 20 20 20 20 20 46 41 4c 53 45 20 3b 20 67 41 4d       FALSE ; gAM
0690: 41 20 63 68 75 6e 6b 3f 0a 20 20 20 20 20 20 20  A chunk?.       
06a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 46 41 4c               FAL
06b0: 53 45 20 3b 20 6f 46 46 53 20 63 68 75 6e 6b 3f  SE ; oFFS chunk?
06c0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
06d0: 20 20 20 20 20 46 41 4c 53 45 20 3b 20 70 48 59       FALSE ; pHY
06e0: 53 20 63 68 75 6e 6b 3f 0a 20 20 20 20 20 20 20  S chunk?.       
06f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 46 41 4c               FAL
0700: 53 45 20 3b 20 74 49 4d 45 20 63 68 75 6e 6b 3f  SE ; tIME chunk?
0710: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
0720: 20 20 20 20 20 46 41 4c 53 45 20 3b 20 77 72 69       FALSE ; wri
0730: 74 65 20 63 6f 6d 6d 65 6e 74 3f 0a 20 20 20 20  te comment?.    
0740: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0750: 46 41 4c 53 45 20 3b 20 50 72 65 73 65 72 76 65  FALSE ; Preserve
0760: 20 74 72 61 6e 73 70 61 72 65 6e 63 79 20 0a 20   transparency . 
0770: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0780: 20 20 20 29 0a 20 20 20 20 28 67 69 6d 70 2d 69     ).    (gimp-i
0790: 6d 61 67 65 2d 64 65 6c 65 74 65 20 69 6d 61 67  mage-delete imag
07a0: 65 29 0a 20 20 20 20 28 67 69 6d 70 2d 62 75 66  e).    (gimp-buf
07b0: 66 65 72 2d 64 65 6c 65 74 65 20 62 75 66 66 65  fer-delete buffe
07c0: 72 2d 6e 61 6d 65 29 0a 20 20 20 20 29 0a 20 20  r-name).    ).  
07d0: 29 0a 20 20 20 20 20 20 20 20 0a 28 73 63 72 69  ).        .(scri
07e0: 70 74 2d 66 75 2d 72 65 67 69 73 74 65 72 20 22  pt-fu-register "
07f0: 73 63 72 69 70 74 2d 66 75 2d 73 67 2d 73 6e 61  script-fu-sg-sna
0800: 70 73 68 6f 74 22 0a 20 20 22 53 6e 61 70 73 68  pshot".  "Snapsh
0810: 6f 74 22 0a 20 20 22 53 61 76 65 20 61 20 63 6f  ot".  "Save a co
0820: 70 79 20 6f 66 20 74 68 65 20 69 6d 61 67 65 22  py of the image"
0830: 0a 20 20 22 53 61 75 6c 20 47 6f 6f 64 65 22 0a  .  "Saul Goode".
0840: 20 20 22 53 61 75 6c 20 47 6f 6f 64 65 22 0a 20    "Saul Goode". 
0850: 20 22 41 75 67 20 32 30 31 31 22 0a 20 20 22 2a   "Aug 2011".  "*
0860: 22 0a 20 20 53 46 2d 49 4d 41 47 45 20 20 20 20  ".  SF-IMAGE    
0870: 22 49 6d 61 67 65 22 20 20 20 20 30 0a 20 20 29  "Image"    0.  )
0880: 0a 0a 28 73 63 72 69 70 74 2d 66 75 2d 6d 65 6e  ..(script-fu-men
0890: 75 2d 72 65 67 69 73 74 65 72 20 22 73 63 72 69  u-register "scri
08a0: 70 74 2d 66 75 2d 73 67 2d 73 6e 61 70 73 68 6f  pt-fu-sg-snapsho
08b0: 74 22 0a 20 22 3c 49 6d 61 67 65 3e 2f 46 69 6c  t". "<Image>/Fil
08c0: 65 22 0a 20 29 0a                                e". ).