/usr/share/gimp/2.0/scripts/elsamuko-photo-border.scm is in gimp-plugin-registry 7.20140602ubuntu2.
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 | ; The GIMP -- an image manipulation program
; Copyright (C) 1995 Spencer Kimball and Peter Mattis
;
; 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, write to the Free Software
; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
; http://www.gnu.org/licenses/gpl-3.0.html
;
; Copyright (C) 2008 elsamuko <elsamuko@web.de>
; Version 0.1 - Simulated Border after: http://flickr.com/photos/conwayl/531028738/
;
(define (elsamuko-photo-border aimg adraw aplace ashift aradius aborder_distance)
(let* ((img (car (gimp-drawable-get-image adraw)))
(draw (car (gimp-layer-copy adraw FALSE)))
(border_distance (/ aborder_distance 100))
)
; init
(define (script-fu-photo-border-helper aimg adraw ashift aradius border_distance)
(let* ((img (car (gimp-drawable-get-image adraw)))
(owidth (car (gimp-image-width img)))
(oheight (car (gimp-image-height img)))
(arith_med (/ (+ owidth oheight) 2))
(xcoord 0)
(ycoord 0)
(radius 0)
(thickness 0)
(soft_margin (car (gimp-layer-new img
owidth
oheight
1
"Soft Margin"
100
ADDITION-MODE)))
(soft_margin_2 (car (gimp-layer-new img
owidth
oheight
1
"Soft Margin 2"
100
OVERLAY-MODE)))
(hard_margin (car (gimp-layer-new img
owidth
oheight
1
"Hard Margin"
100
NORMAL-MODE)))
)
;one layer with soft, red ending
(gimp-image-add-layer img soft_margin -1)
(gimp-drawable-fill soft_margin TRANSPARENT-FILL)
(set! radius (* aradius oheight)) ;radius is diameter...
(set! ycoord (* border_distance oheight))
(set! xcoord (- (+ (* 0.5 owidth) (* (/ ashift 100) owidth)) (/ radius 2)))
(set! thickness (* (/ (+ oheight owidth) 2) 0.04))
(gimp-ellipse-select img xcoord ycoord radius radius ADD TRUE TRUE thickness) ;last term is feather strength
(gimp-selection-invert img)
(gimp-context-set-foreground '(174 28 14))
(gimp-edit-bucket-fill soft_margin FG-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
(gimp-selection-none img)
;one layer with hard, white (overexposed) ending
(gimp-image-add-layer img hard_margin -1)
(gimp-drawable-fill hard_margin TRANSPARENT-FILL)
(set! ycoord (- ycoord (* thickness 0.65)))
(gimp-ellipse-select img xcoord ycoord radius radius ADD TRUE FALSE 0) ;last term is feather strength
(gimp-selection-invert img)
;(script-fu-distress-selection img hard_margin 127 8 3 2 FALSE TRUE)
(script-fu-distress-selection img hard_margin 127 12 2 2 FALSE TRUE)
(script-fu-distress-selection img hard_margin 127 12 1 2 FALSE TRUE)
(gimp-context-set-foreground '(255 255 255))
(gimp-edit-bucket-fill hard_margin FG-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
(gimp-selection-none img)
(plug-in-mblur 1 img hard_margin 0 (* thickness 0.4) 90 0 0)
(plug-in-unsharp-mask 1 img hard_margin 5 2 0)
(plug-in-unsharp-mask 1 img hard_margin 2 1 0)
(plug-in-gauss 1 img hard_margin 1 1 1)
)
)
(gimp-context-push)
(gimp-image-undo-group-start img)
(gimp-context-set-foreground '(0 0 0))
(gimp-context-set-background '(255 255 255))
;rotating image
(if (> aplace 0)
(gimp-image-rotate img (- aplace 1))
)
(set! draw (car (gimp-image-get-active-drawable img)))
;calling border helper function
(script-fu-photo-border-helper img draw ashift aradius border_distance)
;rotating image back
(if (> aplace 0)
(gimp-image-rotate img (- 3 aplace))
)
; tidy up
(gimp-image-undo-group-end img)
(gimp-displays-flush)
(gimp-context-pop)
)
)
(script-fu-register "elsamuko-photo-border"
_"_Photo Border"
"Simulating the border of the first overexposed picture of a film.
Newest version can be downloaded from http://registry.gimp.org/"
"elsamuko <elsamuko@web.de>"
"elsamuko"
"17/08/08"
"*"
SF-IMAGE "Input image" 0
SF-DRAWABLE "Input drawable" 0
SF-OPTION _"Place" '("Top" "Left" "Down" "Right")
SF-ADJUSTMENT _"Shift (%)" '(0 -50 50 1 10 0 0)
SF-ADJUSTMENT _"Radius" '(7 1 20 1 2 0 0)
SF-ADJUSTMENT _"Border Distance (%)" '(12 -5 100 1 10 0 0)
)
(script-fu-menu-register "elsamuko-photo-border" _"<Image>/Filters/Generic")
|