home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 April / PCWorld_2001-04_cd.bin / Software / Topware / gimp / gimp-setup-20001226.exe / Main / unsharp-mask.scm < prev    next >
Encoding:
GIMP Script-Fu Script  |  2000-12-27  |  3.1 KB  |  80 lines

  1. ;;; unsharp-mask.scm
  2. ;;; Time-stamp: <1998/11/17 13:18:39 narazaki@gimp.org>
  3. ;;; Author: Narazaki Shuji <narazaki@gimp.org>
  4. ;;; Version 0.8
  5.  
  6. (define (script-fu-unsharp-mask img drw mask-size mask-opacity)
  7.   (let* ((drawable-width (car (gimp-drawable-width drw)))
  8.      (drawable-height (car (gimp-drawable-height drw)))
  9.      (new-image (car (gimp-image-new drawable-width drawable-height RGB)))
  10.      (original-layer (car (gimp-layer-new new-image
  11.                           drawable-width drawable-height
  12.                           RGB "Original" 100 NORMAL)))
  13.      (original-layer-for-darker #f)
  14.      (original-layer-for-lighter #f)
  15.      (blured-layer-for-darker #f)
  16.      (blured-layer-for-lighter #f)
  17.      (darker-layer #f)
  18.      (lighter-layer #f))
  19.     (gimp-selection-all img)
  20.     (gimp-edit-copy drw)
  21.     (gimp-image-undo-disable new-image)
  22.     (gimp-floating-sel-anchor
  23.      (car (gimp-edit-paste original-layer FALSE)))
  24.     (gimp-image-add-layer new-image original-layer 0)
  25.     (set! original-layer-for-darker (car (gimp-layer-copy original-layer TRUE)))
  26.     (set! original-layer-for-lighter (car (gimp-layer-copy original-layer TRUE)))
  27.     (set! blured-layer-for-darker (car (gimp-layer-copy original-layer TRUE)))
  28.     (gimp-layer-set-visible original-layer FALSE)
  29.     (gimp-display-new new-image)
  30.     ;; make darker mask
  31.     (gimp-image-add-layer new-image blured-layer-for-darker -1)
  32.     (plug-in-gauss-iir TRUE new-image blured-layer-for-darker mask-size
  33.                TRUE TRUE)
  34.     (set! blured-layer-for-lighter
  35.       (car (gimp-layer-copy blured-layer-for-darker TRUE)))
  36.     (gimp-image-add-layer new-image original-layer-for-darker -1)
  37.     (gimp-layer-set-mode original-layer-for-darker SUBTRACT)
  38.     (set! darker-layer
  39.       (car (gimp-image-merge-visible-layers new-image CLIP-TO-IMAGE)))
  40.     (gimp-layer-set-name darker-layer "darker mask")
  41.     (gimp-layer-set-visible darker-layer FALSE)
  42.     ;; make lighter mask
  43.     (gimp-image-add-layer new-image original-layer-for-lighter -1)
  44.     (gimp-image-add-layer new-image blured-layer-for-lighter -1)
  45.     (gimp-layer-set-mode blured-layer-for-lighter SUBTRACT)
  46.     (set! lighter-layer
  47.       (car (gimp-image-merge-visible-layers new-image CLIP-TO-IMAGE)))
  48.     (gimp-layer-set-name lighter-layer "lighter mask")
  49.     ;; combine them
  50.     (gimp-layer-set-visible original-layer TRUE)
  51.     (gimp-layer-set-mode darker-layer SUBTRACT)
  52.     (gimp-layer-set-opacity darker-layer mask-opacity)
  53.     (gimp-layer-set-visible darker-layer TRUE)
  54.     (gimp-layer-set-mode lighter-layer ADDITION)
  55.     (gimp-layer-set-opacity lighter-layer mask-opacity)
  56.     (gimp-layer-set-visible lighter-layer TRUE)
  57.     (gimp-image-undo-enable new-image)
  58.     (gimp-displays-flush)))
  59.  
  60. (script-fu-register
  61.  "script-fu-unsharp-mask"
  62.  _"<Image>/Script-Fu/Alchemy/Unsharp Mask..."
  63.  "Make a sharp image of IMAGE's DRAWABLE by applying unsharp mask method"
  64.  "Shuji Narazaki <narazaki@gimp.org>"
  65.  "Shuji Narazaki"
  66.  "1997,1998"
  67.  ""
  68.  SF-IMAGE "Image" 0
  69.  SF-DRAWABLE "Drawable to apply" 0
  70.  SF-ADJUSTMENT _"Mask Size" '(5 1 100 1 1 0 1)
  71.  SF-ADJUSTMENT _"Mask Opacity" '(50 0 100 1 1 0 1)
  72. )
  73.  
  74. ;;; unsharp-mask.scm ends here
  75.  
  76.  
  77.  
  78.  
  79.  
  80.