; 210_effects_landscape-illustrator.scm
; last modified/tested by Paul Sherman [gimphelp.org]
; Thursday, 07/02/2020 on GIMP 2.10.20
;==================================================
;
; Installation:
; This script should be placed in the user or system-wide script folder.
;
; Windows 7/10
; C:\Program Files\GIMP 2\share\gimp\2.0\scripts
; or
; C:\Users\YOUR-NAME\AppData\Roaming\GIMP\2.10\scripts
;
;
; Linux
; /home/yourname/.config/GIMP/2.10/scripts
; or
; Linux system-wide
; /usr/share/gimp/2.0/scripts
;
;==================================================
;
; LICENSE
;
; 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 .
;
;==============================================================
; Original information
;
; Original author: Mark Lowry
;
; Tags: photo, artistic
; Author statement:
; A GIMP script-fu to generate a painted look to a
; landscape photo. Sometimes provides an interesting
; effect on portraits and animal shots.
;
; First, if desired it will over-sharpen the image. This
; helps improve definition in the final product. A value of 5
; is a good place to start.
;
; Next, it creates a top layer set to Darken Only mode and
; then blurs it. Varying the blur radius will change
; the effect, as will applying a Levels or Curves adjustment
; to the Darken Only layer. Just play with it and see
; what you get!
;
; Created on 5/31/2006 for v.2.2.8
;==============================================================
(define (210-Land_illust
img
drawable
blur-rad
sharpen-flag
merge-flag
strength
)
(gimp-image-undo-group-start img)
(if (not (= RGB (car (gimp-image-base-type img))))
(gimp-image-convert-rgb img))
(let* (
(darken-layer 0)
(merged-layer 0)
)
; SHARPEN FIRST, IF DESIRED
(if (equal? sharpen-flag TRUE)
(over_sharpen img drawable strength)
()
)
; CREATE THE DARKEN ONLY LAYER
(set! darken-layer (car (gimp-layer-copy drawable 0)))
; Give it a name
(gimp-item-set-name darken-layer "Darken Only layer")
; Add the new layer to the image
(gimp-image-insert-layer img darken-layer 0 0)
; Set opacity to 100%
(gimp-layer-set-opacity darken-layer 100)
(gimp-layer-set-mode darken-layer DARKEN-ONLY-MODE )
; Blur the layer
(if (> blur-rad 0)
(plug-in-gauss-iir 1 img darken-layer blur-rad 1 1 )
()
)
; NOW MERGE EVERYTHING DOWN IF DESIRED
(if (equal? merge-flag TRUE)
(set! merged-layer (car(gimp-image-merge-down img darken-layer 1 )))
()
)
(if (equal? merge-flag TRUE)
(gimp-item-set-name merged-layer "Result of Landscape Illustrator")
()
)
; Complete the undo group
(gimp-image-undo-group-end img)
; Flush the display
(gimp-displays-flush)
)
)
(define (over_sharpen img drawable strength )
(let* (
(matrix 0)
(divisor 0)
)
(set! strength (- 11 (/ strength 5) ) 'double )
(let* ( (matrix-list '( 0 -.2 -.2 -.2 0
-.2 -.5 -1 -.5 -.2
-.2 -1 10 -1 -.2
-.2 -.5 -1 -.5 -.2
0 -.2 -.2 -.2 0 ))
(channels (make-vector 5 'long ))
)
(set! matrix (get-matrix matrix-list))
(vector-set! channels 0 0 )
(vector-set! channels 1 1 )
(vector-set! channels 2 1 )
(vector-set! channels 3 1 )
(vector-set! channels 4 0 )
(vector-set! matrix 12 strength)
(set! divisor (- strength 8.4))
(plug-in-convmatrix 1 img drawable 25 matrix 0 1.5999 0 5 channels 0 )
; Flush the display
(gimp-displays-flush)
)
)
)
; Convert maxtrix list (25) into matrix array (5x5)
(define (get-matrix matrix-list)
(let* (
(n 0)
)
(set! n 25 )
(define (list-ref l n) (nth n l))
(let* ((count 0)
(matrix (cons-array 25 'double)))
(while (< count 25 )
(aset matrix count (list-ref matrix-list count))
(set! count (+ count 1)))
matrix ; Return the matrix array
)
)
)
(script-fu-register "210-Land_illust"
"Landscape Illustrator"
"Similar to Landscape Painter, but with a bit of a sketch effect as well. Over-sharpen, then add Darken Only layer and blur it"
"Mark Lowry"
"Technique by Mark Lowry"
"2006"
"*"
SF-IMAGE "Image" 0
SF-DRAWABLE "Current Layer" 0
SF-VALUE "Blur radius?" "15"
SF-TOGGLE "Sharpen First?" TRUE
SF-TOGGLE "Merge Layers?" TRUE
SF-ADJUSTMENT "Sharpening strength?" '(5 0 10 1 10 0 0)
)
(script-fu-menu-register "210-Land_illust" "/Script-Fu/Effects")