/usr/share/gimp/2.0/scripts/Eg-SmartSeparateSharpen.scm is in gimp-plugin-registry 5.20120621.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 | ;
; Smart Seperate Sharpening, V2.8
;
; Martin Egger (martin.egger@gmx.net), Michael Kolodny (m_kolodny@phreego.com) added 'Texture Sharpening'
; and included 'Seperate Sharpen'
; (C) 2012, Bern, Switzerland
;
; You can find more about Smart Sharpening at
; http://www.gimpguru.org/Tutorials/SmartSharpening2/
;
; This script was tested with Gimp 2.8
;
; New versions will be distributed from http://registry.gimp.org/ only
;
; 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 <http://www.gnu.org/licenses>.
;
; Define the function
;
(define (script-fu-Eg-SmartSeparateSharpen
InImage
InLayer
TInAmount
TInLightOpacity
TInDarkOpacity
EInAmount
EInLightOpacity
EInDarkOpacity
TInRadius
TInThreshold
EInRadius
EInThreshold
InEdge
InBlur
InFlatten)
;
; Save history
;
(gimp-image-undo-group-start InImage)
(if (= (car (gimp-drawable-is-rgb InLayer)) FALSE ) (gimp-image-convert-rgb InImage))
;
(let* (
(MaskImage (car (gimp-image-duplicate InImage)))
(MaskLayer (cadr (gimp-image-get-layers MaskImage)))
;
(OrigLayer (cadr (gimp-image-get-layers InImage)))
;
(EdgeSharpenLayer (car (gimp-layer-copy InLayer TRUE)))
(TextureSharpenLayer (car (gimp-layer-copy InLayer TRUE)))
)
;
(gimp-image-insert-layer InImage EdgeSharpenLayer 0 -1)
(gimp-image-insert-layer InImage TextureSharpenLayer 0 -1)
;
;
; Find edges, Warpmode = Smear (1), Edgemode = Sobel (0)
;
(plug-in-edge TRUE MaskImage (aref MaskLayer 0) InEdge 1 0)
(gimp-levels-stretch (aref MaskLayer 0))
(gimp-image-convert-grayscale MaskImage)
(plug-in-gauss TRUE MaskImage (aref MaskLayer 0) InBlur InBlur TRUE)
;
(let* (
(EdgeSharpenLayerMask (car (gimp-layer-create-mask EdgeSharpenLayer ADD-WHITE-MASK)))
(TextureSharpenLayerMask (car (gimp-layer-create-mask TextureSharpenLayer ADD-WHITE-MASK)))
)
(gimp-layer-add-mask EdgeSharpenLayer EdgeSharpenLayerMask)
;
(gimp-selection-all MaskImage)
(gimp-edit-copy (aref MaskLayer 0))
(gimp-floating-sel-anchor (car (gimp-edit-paste EdgeSharpenLayerMask FALSE)))
;
(script-fu-Eg-SharpenLightAndDark InImage EdgeSharpenLayer EInRadius EInAmount EInLightOpacity EInDarkOpacity EInThreshold InFlatten "Edge")
;; do texture sharpening with an inverted edge mask
(gimp-image-convert-rgb MaskImage)
(plug-in-vinvert TRUE MaskImage (aref MaskLayer 0))
(gimp-edit-copy (aref MaskLayer 0))
;
(gimp-layer-add-mask TextureSharpenLayer TextureSharpenLayerMask)
(gimp-floating-sel-anchor (car (gimp-edit-paste TextureSharpenLayerMask FALSE)))
(gimp-image-delete MaskImage)
;
(script-fu-Eg-SharpenLightAndDark InImage TextureSharpenLayer TInRadius TInAmount TInLightOpacity TInDarkOpacity TInThreshold InFlatten "Texture")
)
;
(cond
((= InFlatten FALSE)
(begin
(gimp-layer-set-edit-mask EdgeSharpenLayer FALSE)
(gimp-layer-set-edit-mask TextureSharpenLayer FALSE)
(gimp-image-set-active-layer InImage InLayer)
)
)
)
)
;
; Finish work
;
(gimp-image-undo-group-end InImage)
(gimp-displays-flush)
;
)
;
(define (script-fu-Eg-SharpenLightAndDark InImage InSharpenDarkLayer InRadius InAmount InLightOpacity InDarkOpacity InThreshold InFlatten InLabel)
;
(gimp-layer-set-mode InSharpenDarkLayer DARKEN-ONLY-MODE)
(gimp-layer-set-opacity InSharpenDarkLayer InDarkOpacity)
(plug-in-unsharp-mask TRUE InImage InSharpenDarkLayer InRadius InAmount InThreshold)
;
(let* (
(SharpenLightLayer (car (gimp-layer-copy InSharpenDarkLayer TRUE)))
)
(gimp-image-insert-layer InImage SharpenLightLayer 0 -1)
(gimp-layer-set-mode SharpenLightLayer LIGHTEN-ONLY-MODE)
(gimp-layer-set-opacity SharpenLightLayer InLightOpacity)
;
; Flatten the image, if we need to
;
(cond
((= InFlatten TRUE)
(begin
(let* (
(InSharpenDarkLayer (car (gimp-image-merge-down InImage InSharpenDarkLayer CLIP-TO-IMAGE)))
)
(gimp-image-merge-down InImage SharpenLightLayer CLIP-TO-IMAGE)
)
)
)
((= InFlatten FALSE)
(begin
(gimp-item-set-name SharpenLightLayer "Sharpened Lighten")
(gimp-item-set-name InSharpenDarkLayer "Sharpened Darken")
(gimp-image-set-active-layer InImage InSharpenDarkLayer)
)
)
)
)
)
;
(script-fu-register
"script-fu-Eg-SmartSeparateSharpen"
_"_Sharpen (Smart Separate Redux)"
"Smart Sharpening, Redux version"
"Martin Egger (martin.egger@gmx.net) and Michael Kolodny (m_kolodny@phreego.com)"
"Martin Egger, Bern, Switzerland"
"28.02.2012"
"RGB* GRAY*"
SF-IMAGE "The Image" 0
SF-DRAWABLE "The Layer" 0
SF-ADJUSTMENT "Texture Sharpen USM: Amount" '(1 0.0 10.0 0.5 0 2 0)
SF-ADJUSTMENT "Texture Sharpen Lighten USM: Opacity" '(50 0.0 100 0.5 0 2 0)
SF-ADJUSTMENT "Texture Sharpen Darken USM: Opacity" '(100 0.0 100 0.5 0 2 0)
SF-ADJUSTMENT "Edge Sharpen USM: Amount" '(1.0 0.0 5.0 0.5 0 2 0)
SF-ADJUSTMENT "Edge Sharpen Lighten USM: Opacity" '(50 0.0 100 0.5 0 2 0)
SF-ADJUSTMENT "Edge Sharpen Darken USM: Opacity" '(100 0.0 100 0.5 0 2 0)
SF-ADJUSTMENT "Texture Sharpen USM: Radius" '(0.3 0.0 120.0 1 0 2 0)
SF-ADJUSTMENT "Texture Sharpen USM: Threshold" '(0.0 0.0 255.0 1.0 0 2 0)
SF-ADJUSTMENT "Edge Sharpen USM: Radius" '(0.3 0.0 50.0 1 0 2 0)
SF-ADJUSTMENT "Edge Sharpen USM: Threshold" '(0.0 0.0 50.0 1.0 0 2 0)
SF-ADJUSTMENT "Edges: Detect Amount" '(6.0 1.0 10.0 1.0 0 2 0)
SF-ADJUSTMENT "Edges: Blur Pixels" '(6.0 1.0 10.0 1.0 0 2 0)
SF-TOGGLE "Flatten Image" FALSE
)
;
(script-fu-menu-register "script-fu-Eg-SmartSeparateSharpen"
"<Image>/Filters/Eg")
;
|