Mohi
12.11.2008, 23:41
Huhu liebe GIMP-Community
Ich habe schon vor längerer Zeit mal ein kleines Skript geschrieben, das die aktive Selektion hervorhebt. Grund dafür war, dass ich früher in einem anderen Forum relativ häufig Hilfestellungen anhand von Screenshots gegeben habe und es mir irgendwann zu lästig wurde, den gewünschten Bereich immer von Hand hervorzuheben.
Nun dachte ich, dass hier vielleicht auch der eine oder andere daran Interesse haben könnte.
Wenn man das Skript angewendet hat sieht das Ergebnis so aus:
9328
Die Werte des Weichzeichners können vom Benutzer eingestellt werden oder der Effekt kann auch ganz ausgeschaltet werden. Die Farbe um den Fokus ist auch frei wählbar.
Angewendet werden kann das Skript auf RGB- und Graustufenbilder, auf denen ein Bereich selektiert wurde.
Das Skript erscheint im Menü Bearbeiten.
Englische Version:
;Bring-out-Script for GIMP 2.6 by Mohi
;Last update: 12th November in 2008 by Mohi
;This script was made for people who often use screenshots for explanations.
;It brings the selection out by darkening (and blurring if you want) the deselected part of the picture
;and giving the selection a border.
;this function brings a selection out
(define (use-bring-out sfImg sfDrwbl sfColour sfGaussian sfXGaussian sfYGaussian)
(let*
(;------declare variables
(varImageType
(car
(gimp-image-base-type sfImg)
)
)
(varWidth
(car
(gimp-image-width sfImg)
)
)
(varHeight
(car
(gimp-image-height sfImg)
)
)
(varDimout 0)
(varBorder 0)
(varContent 0)
);------end declaration
;if image-type is RGB(0) set layer-type to RGBA(1) otherwise set layer-type to GRAYA(3)
(if (= varImageType 0)
(set! varImageType 1)
(set! varImageType 3)
)
;create the border-layer
(set! varBorder
(car
(gimp-layer-new
sfImg
varWidth
varHeight
varImageType
""
75
NORMAL-MODE
)
)
)
;create the dimout-layer
(set! varDimout
(car
(gimp-layer-new
sfImg
varWidth
varHeight
varImageType
""
50
NORMAL-MODE
)
)
)
(gimp-image-undo-group-start sfImg)
;if "use blur" was chosen, create a new layer from all visible layers and blur it
(if (= sfGaussian TRUE)
(begin
(set! varContent
(car
(gimp-layer-new-from-visible
sfImg
sfImg
"Picture"
)
)
)
(gimp-image-add-layer
sfImg
varContent
-1
)
)
)
(gimp-image-add-layer
sfImg
varBorder
-1
)
(gimp-image-add-layer
sfImg
varDimout
-1
)
(gimp-edit-clear varDimout)
(gimp-context-set-foreground sfColour)
(gimp-context-set-background '(0 0 0))
(gimp-selection-invert sfImg)
(gimp-edit-clear varDimout)
(gimp-edit-fill
varDimout
BACKGROUND-FILL
)
(if (= sfGaussian TRUE)
(plug-in-gauss
RUN-NONINTERACTIVE
sfImg
varContent
sfXGaussian
sfYGaussian
0
)
)
(gimp-edit-clear varBorder)
(gimp-selection-invert sfImg)
(gimp-selection-grow
sfImg
2
)
(gimp-edit-fill
varBorder
FOREGROUND-FILL
)
(gimp-selection-shrink
sfImg
4
)
(gimp-edit-clear varBorder)
(gimp-selection-clear sfImg)
(plug-in-gauss
RUN-NONINTERACTIVE
sfImg
varBorder
5
5
0
)
(set! varDimout
(car
(gimp-image-merge-down
sfImg
varDimout
EXPAND-AS-NECESSARY
)
)
)
(gimp-drawable-set-name
varDimout
"Accentuation"
)
(gimp-image-undo-group-end sfImg)
(gimp-displays-flush)
(gimp-context-set-foreground '(0 0 0))
(gimp-context-set-background '(255 255 255))
)
)
;this function checks if there is a selection
(define (bring-out sfImg sfDrwbl sfColour sfGaussian sfXGaussian sfYGaussian)
(let*
(;---------declare variables
(varNoSelection
(car
(gimp-selection-is-empty sfImg)
)
)
);---------end declaration
;if there's a selection, bring it out, otherwise do nothing
(if (= FALSE varNoSelection)
(use-bring-out
sfImg
sfDrwbl
sfColour
sfGaussian
sfXGaussian
sfYGaussian
)
)
)
)
(script-fu-register
"bring-out"
"Bring _out selection"
"Brings the selected part of an image out."
"Mohi"
"You are allowed to modify and distribute this script as long as you don't remove the name of the author."
"2008-10-26"
"RGB*, GRAY*"
SF-IMAGE "" 0
SF-DRAWABLE "" 0
SF-COLOR "Colour" '(255 0 0)
SF-TOGGLE "Use blur" TRUE
;start-value: 6.5, min-value: 0.1, max-value: 99, small step: 1, large step: 5, data type: float, control type: spinner
SF-ADJUSTMENT "Horizontal blur value" '(6.5 0.1 99 1 5 1 1)
SF-ADJUSTMENT "Vertical blur value" '(6.5 0.1 99 1 5 1 1)
)
(script-fu-menu-register
"bring-out"
"<Image>/Edit"
)
Für alle Leute, die lieber eine deutsche Version möchten(nur Oberflächenbeschriftung wurde übersetzt):
;Bring-out-Script for GIMP 2.6 by Mohi
;Last update: 12th November in 2008 by Mohi
;This script was made for people who often use screenshots for explanations.
;It brings the selection out by darkening (and blurring if you want) the deselected part of the picture
;and giving the selection a border.
;this function brings a selection out
(define (use-bring-out sfImg sfDrwbl sfColour sfGaussian sfXGaussian sfYGaussian)
(let*
(;------declare variables
(varImageType
(car
(gimp-image-base-type sfImg)
)
)
(varWidth
(car
(gimp-image-width sfImg)
)
)
(varHeight
(car
(gimp-image-height sfImg)
)
)
(varDimout 0)
(varBorder 0)
(varContent 0)
);------end declaration
;if image-type is RGB(0) set layer-type to RGBA(1) otherwise set layer-type to GRAYA(3)
(if (= varImageType 0)
(set! varImageType 1)
(set! varImageType 3)
)
;create the border-layer
(set! varBorder
(car
(gimp-layer-new
sfImg
varWidth
varHeight
varImageType
""
75
NORMAL-MODE
)
)
)
;create the dimout-layer
(set! varDimout
(car
(gimp-layer-new
sfImg
varWidth
varHeight
varImageType
""
50
NORMAL-MODE
)
)
)
(gimp-image-undo-group-start sfImg)
;if "use blur" was chosen, merge all layers and blur them
(if (= sfGaussian TRUE)
(begin
(set! varContent
(car
(gimp-layer-new-from-visible
sfImg
sfImg
"Bild"
)
)
)
(gimp-image-add-layer
sfImg
varContent
-1
)
)
)
(gimp-image-add-layer
sfImg
varBorder
-1
)
(gimp-image-add-layer
sfImg
varDimout
-1
)
(gimp-edit-clear varDimout)
(gimp-context-set-foreground sfColour)
(gimp-context-set-background '(0 0 0))
(gimp-selection-invert sfImg)
(gimp-edit-clear varDimout)
(gimp-edit-fill
varDimout
BACKGROUND-FILL
)
(if (= sfGaussian TRUE)
(plug-in-gauss
RUN-NONINTERACTIVE
sfImg
varContent
sfXGaussian
sfYGaussian
0
)
)
(gimp-edit-clear varBorder)
(gimp-selection-invert sfImg)
(gimp-selection-grow
sfImg
2
)
(gimp-edit-fill
varBorder
FOREGROUND-FILL
)
(gimp-selection-shrink
sfImg
4
)
(gimp-edit-clear varBorder)
(gimp-selection-clear sfImg)
(plug-in-gauss
RUN-NONINTERACTIVE
sfImg
varBorder
5
5
0
)
(set! varDimout
(car
(gimp-image-merge-down
sfImg
varDimout
EXPAND-AS-NECESSARY
)
)
)
(gimp-drawable-set-name
varDimout
"Hervorhebung"
)
(gimp-image-undo-group-end sfImg)
(gimp-displays-flush)
(gimp-context-set-foreground '(0 0 0))
(gimp-context-set-background '(255 255 255))
)
)
;this function checks if there is a selection
(define (bring-out sfImg sfDrwbl sfColour sfGaussian sfXGaussian sfYGaussian)
(let*
(;---------declare variables
(varNoSelection
(car
(gimp-selection-is-empty sfImg)
)
)
);---------end declaration
;if there's a selection, bring it out, otherwise do nothing
(if (= FALSE varNoSelection)
(use-bring-out
sfImg
sfDrwbl
sfColour
sfGaussian
sfXGaussian
sfYGaussian
)
)
)
)
(script-fu-register
"bring-out"
"Selekti_on hervorheben"
"Hebt den selektierten Bereich hervor."
"Mohi"
"Du darfst dieses Skript verändern und verteilen solange du den Namen des Autors nicht entfernst."
"12.11.2008"
"RGB*, GRAY*"
SF-IMAGE "" 0
SF-DRAWABLE "" 0
SF-COLOR "Farbe" '(255 0 0)
SF-TOGGLE "Gaußscher Weichzeichner" TRUE
;start-value: 6.5, min-value: 0.1, max-value: 99, small step: 1, large step: 5, data type: float, control type: spinner
SF-ADJUSTMENT "Horizontaler Gaußscher Wert" '(6 1 99 1 5 1 1)
SF-ADJUSTMENT "Vertikaler Gaußscher Wert" '(6 1 99 1 5 1 1)
)
(script-fu-menu-register
"bring-out"
"<Image>/Edit"
)
Wie gesagt, nichts Großes aber ich find's manchmal doch ganz nützlich.
Gruß Mohi
Ich habe schon vor längerer Zeit mal ein kleines Skript geschrieben, das die aktive Selektion hervorhebt. Grund dafür war, dass ich früher in einem anderen Forum relativ häufig Hilfestellungen anhand von Screenshots gegeben habe und es mir irgendwann zu lästig wurde, den gewünschten Bereich immer von Hand hervorzuheben.
Nun dachte ich, dass hier vielleicht auch der eine oder andere daran Interesse haben könnte.
Wenn man das Skript angewendet hat sieht das Ergebnis so aus:
9328
Die Werte des Weichzeichners können vom Benutzer eingestellt werden oder der Effekt kann auch ganz ausgeschaltet werden. Die Farbe um den Fokus ist auch frei wählbar.
Angewendet werden kann das Skript auf RGB- und Graustufenbilder, auf denen ein Bereich selektiert wurde.
Das Skript erscheint im Menü Bearbeiten.
Englische Version:
;Bring-out-Script for GIMP 2.6 by Mohi
;Last update: 12th November in 2008 by Mohi
;This script was made for people who often use screenshots for explanations.
;It brings the selection out by darkening (and blurring if you want) the deselected part of the picture
;and giving the selection a border.
;this function brings a selection out
(define (use-bring-out sfImg sfDrwbl sfColour sfGaussian sfXGaussian sfYGaussian)
(let*
(;------declare variables
(varImageType
(car
(gimp-image-base-type sfImg)
)
)
(varWidth
(car
(gimp-image-width sfImg)
)
)
(varHeight
(car
(gimp-image-height sfImg)
)
)
(varDimout 0)
(varBorder 0)
(varContent 0)
);------end declaration
;if image-type is RGB(0) set layer-type to RGBA(1) otherwise set layer-type to GRAYA(3)
(if (= varImageType 0)
(set! varImageType 1)
(set! varImageType 3)
)
;create the border-layer
(set! varBorder
(car
(gimp-layer-new
sfImg
varWidth
varHeight
varImageType
""
75
NORMAL-MODE
)
)
)
;create the dimout-layer
(set! varDimout
(car
(gimp-layer-new
sfImg
varWidth
varHeight
varImageType
""
50
NORMAL-MODE
)
)
)
(gimp-image-undo-group-start sfImg)
;if "use blur" was chosen, create a new layer from all visible layers and blur it
(if (= sfGaussian TRUE)
(begin
(set! varContent
(car
(gimp-layer-new-from-visible
sfImg
sfImg
"Picture"
)
)
)
(gimp-image-add-layer
sfImg
varContent
-1
)
)
)
(gimp-image-add-layer
sfImg
varBorder
-1
)
(gimp-image-add-layer
sfImg
varDimout
-1
)
(gimp-edit-clear varDimout)
(gimp-context-set-foreground sfColour)
(gimp-context-set-background '(0 0 0))
(gimp-selection-invert sfImg)
(gimp-edit-clear varDimout)
(gimp-edit-fill
varDimout
BACKGROUND-FILL
)
(if (= sfGaussian TRUE)
(plug-in-gauss
RUN-NONINTERACTIVE
sfImg
varContent
sfXGaussian
sfYGaussian
0
)
)
(gimp-edit-clear varBorder)
(gimp-selection-invert sfImg)
(gimp-selection-grow
sfImg
2
)
(gimp-edit-fill
varBorder
FOREGROUND-FILL
)
(gimp-selection-shrink
sfImg
4
)
(gimp-edit-clear varBorder)
(gimp-selection-clear sfImg)
(plug-in-gauss
RUN-NONINTERACTIVE
sfImg
varBorder
5
5
0
)
(set! varDimout
(car
(gimp-image-merge-down
sfImg
varDimout
EXPAND-AS-NECESSARY
)
)
)
(gimp-drawable-set-name
varDimout
"Accentuation"
)
(gimp-image-undo-group-end sfImg)
(gimp-displays-flush)
(gimp-context-set-foreground '(0 0 0))
(gimp-context-set-background '(255 255 255))
)
)
;this function checks if there is a selection
(define (bring-out sfImg sfDrwbl sfColour sfGaussian sfXGaussian sfYGaussian)
(let*
(;---------declare variables
(varNoSelection
(car
(gimp-selection-is-empty sfImg)
)
)
);---------end declaration
;if there's a selection, bring it out, otherwise do nothing
(if (= FALSE varNoSelection)
(use-bring-out
sfImg
sfDrwbl
sfColour
sfGaussian
sfXGaussian
sfYGaussian
)
)
)
)
(script-fu-register
"bring-out"
"Bring _out selection"
"Brings the selected part of an image out."
"Mohi"
"You are allowed to modify and distribute this script as long as you don't remove the name of the author."
"2008-10-26"
"RGB*, GRAY*"
SF-IMAGE "" 0
SF-DRAWABLE "" 0
SF-COLOR "Colour" '(255 0 0)
SF-TOGGLE "Use blur" TRUE
;start-value: 6.5, min-value: 0.1, max-value: 99, small step: 1, large step: 5, data type: float, control type: spinner
SF-ADJUSTMENT "Horizontal blur value" '(6.5 0.1 99 1 5 1 1)
SF-ADJUSTMENT "Vertical blur value" '(6.5 0.1 99 1 5 1 1)
)
(script-fu-menu-register
"bring-out"
"<Image>/Edit"
)
Für alle Leute, die lieber eine deutsche Version möchten(nur Oberflächenbeschriftung wurde übersetzt):
;Bring-out-Script for GIMP 2.6 by Mohi
;Last update: 12th November in 2008 by Mohi
;This script was made for people who often use screenshots for explanations.
;It brings the selection out by darkening (and blurring if you want) the deselected part of the picture
;and giving the selection a border.
;this function brings a selection out
(define (use-bring-out sfImg sfDrwbl sfColour sfGaussian sfXGaussian sfYGaussian)
(let*
(;------declare variables
(varImageType
(car
(gimp-image-base-type sfImg)
)
)
(varWidth
(car
(gimp-image-width sfImg)
)
)
(varHeight
(car
(gimp-image-height sfImg)
)
)
(varDimout 0)
(varBorder 0)
(varContent 0)
);------end declaration
;if image-type is RGB(0) set layer-type to RGBA(1) otherwise set layer-type to GRAYA(3)
(if (= varImageType 0)
(set! varImageType 1)
(set! varImageType 3)
)
;create the border-layer
(set! varBorder
(car
(gimp-layer-new
sfImg
varWidth
varHeight
varImageType
""
75
NORMAL-MODE
)
)
)
;create the dimout-layer
(set! varDimout
(car
(gimp-layer-new
sfImg
varWidth
varHeight
varImageType
""
50
NORMAL-MODE
)
)
)
(gimp-image-undo-group-start sfImg)
;if "use blur" was chosen, merge all layers and blur them
(if (= sfGaussian TRUE)
(begin
(set! varContent
(car
(gimp-layer-new-from-visible
sfImg
sfImg
"Bild"
)
)
)
(gimp-image-add-layer
sfImg
varContent
-1
)
)
)
(gimp-image-add-layer
sfImg
varBorder
-1
)
(gimp-image-add-layer
sfImg
varDimout
-1
)
(gimp-edit-clear varDimout)
(gimp-context-set-foreground sfColour)
(gimp-context-set-background '(0 0 0))
(gimp-selection-invert sfImg)
(gimp-edit-clear varDimout)
(gimp-edit-fill
varDimout
BACKGROUND-FILL
)
(if (= sfGaussian TRUE)
(plug-in-gauss
RUN-NONINTERACTIVE
sfImg
varContent
sfXGaussian
sfYGaussian
0
)
)
(gimp-edit-clear varBorder)
(gimp-selection-invert sfImg)
(gimp-selection-grow
sfImg
2
)
(gimp-edit-fill
varBorder
FOREGROUND-FILL
)
(gimp-selection-shrink
sfImg
4
)
(gimp-edit-clear varBorder)
(gimp-selection-clear sfImg)
(plug-in-gauss
RUN-NONINTERACTIVE
sfImg
varBorder
5
5
0
)
(set! varDimout
(car
(gimp-image-merge-down
sfImg
varDimout
EXPAND-AS-NECESSARY
)
)
)
(gimp-drawable-set-name
varDimout
"Hervorhebung"
)
(gimp-image-undo-group-end sfImg)
(gimp-displays-flush)
(gimp-context-set-foreground '(0 0 0))
(gimp-context-set-background '(255 255 255))
)
)
;this function checks if there is a selection
(define (bring-out sfImg sfDrwbl sfColour sfGaussian sfXGaussian sfYGaussian)
(let*
(;---------declare variables
(varNoSelection
(car
(gimp-selection-is-empty sfImg)
)
)
);---------end declaration
;if there's a selection, bring it out, otherwise do nothing
(if (= FALSE varNoSelection)
(use-bring-out
sfImg
sfDrwbl
sfColour
sfGaussian
sfXGaussian
sfYGaussian
)
)
)
)
(script-fu-register
"bring-out"
"Selekti_on hervorheben"
"Hebt den selektierten Bereich hervor."
"Mohi"
"Du darfst dieses Skript verändern und verteilen solange du den Namen des Autors nicht entfernst."
"12.11.2008"
"RGB*, GRAY*"
SF-IMAGE "" 0
SF-DRAWABLE "" 0
SF-COLOR "Farbe" '(255 0 0)
SF-TOGGLE "Gaußscher Weichzeichner" TRUE
;start-value: 6.5, min-value: 0.1, max-value: 99, small step: 1, large step: 5, data type: float, control type: spinner
SF-ADJUSTMENT "Horizontaler Gaußscher Wert" '(6 1 99 1 5 1 1)
SF-ADJUSTMENT "Vertikaler Gaußscher Wert" '(6 1 99 1 5 1 1)
)
(script-fu-menu-register
"bring-out"
"<Image>/Edit"
)
Wie gesagt, nichts Großes aber ich find's manchmal doch ganz nützlich.
Gruß Mohi