; ; High-pass filter for sharpening script for GIMP 2.4 ; Copyright (C) 2008 Aurélien Calonne ; -------------------------------------------------------------------- ; ; This program is free software; you can redistribute it and/or modify ; it under the terms of the GNU General Public License as published by ; the Free Software Foundation; either version 3 of the License, or ; (at your option) any later version. ; ; This program is distributed in the hope that it will be useful, ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; GNU General Public License for more details. ; ; You should have received a copy of the GNU General Public License ; along with this program. If not, see . ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;. (define (script-fu-high-pass InImage InLayer InBlur InOpacity InFlatten) ; Save history (gimp-image-undo-group-start InImage) ; Create two layer copy (let* ( (Copy1Layer (car (gimp-layer-copy InLayer TRUE))) (Copy2Layer (car (gimp-layer-copy InLayer TRUE))) ) (gimp-image-add-layer InImage Copy1Layer 0) (gimp-image-add-layer InImage Copy2Layer 0) ; Apply gaussian blur, invert layer and merge (plug-in-gauss 1 InImage Copy2Layer InBlur InBlur 1) (gimp-invert Copy2Layer) (gimp-layer-set-opacity Copy2Layer 50) (let* ( (merged (car (gimp-image-merge-down InImage Copy2Layer 0))) ) ; Set level and layer opacity (gimp-levels merged 0 100 155 1.0 0 255) (gimp-layer-set-mode merged OVERLAY-MODE) (gimp-layer-set-opacity merged InOpacity) ; Flatten image if needed (cond ((= InFlatten TRUE) (begin (gimp-image-merge-down InImage merged CLIP-TO-IMAGE) ) ) ((= InFlatten FALSE) (begin (gimp-drawable-set-name merged "High Pass") ) ) ) ) ) ; Finish (gimp-displays-flush) (gimp-image-undo-group-end InImage) ) (script-fu-register "script-fu-high-pass" _"_High Pass Filter" _"Apply a high pass filter" "Aurélien Calonne" "2008, Aurélien Calonne" "20th December 2008" "RGB* GRAY*" SF-IMAGE "Image" 0 SF-DRAWABLE "Drawable" 0 SF-ADJUSTMENT "Blur Quantity" '(5 1 30 1 1 0 0) SF-ADJUSTMENT "Layer Opacity" '(100 1 100 1 1 0 0) SF-TOGGLE _"Flatten Image" FALSE ) (script-fu-menu-register "script-fu-high-pass" "/Script-Fu/Enhance")