From 193bd5a30f947b861875804cc1ee7d499fe89b0d Mon Sep 17 00:00:00 2001 From: ray Date: Mon, 20 Apr 2020 12:39:10 +0100 Subject: [PATCH] initial commit --- .gitignore | 2 + 2.10/action-history | 104 + 2.10/colorrc | 263 + 2.10/contextrc | 15 + 2.10/controllerrc | 40 + 2.10/devicerc | 177 + 2.10/dockrc | 4 + .../GimpBrightnessContrastConfig.settings | 20 + 2.10/filters/GimpCurvesConfig.settings | 80 + .../GimpGegl-gegl-dropshadow-config.settings | 53 + ...impGegl-gegl-gaussian-blur-config.settings | 74 + .../GimpGegl-gegl-hue-chroma-config.settings | 9 + ...impGegl-gegl-noise-cie-lch-config.settings | 11 + .../GimpGegl-gegl-saturation-config.settings | 40 + ...gl-gegl-shadows-highlights-config.settings | 13 + .../GimpGegl-gimp-desaturate-config.settings | 19 + 2.10/filters/GimpHueSaturationConfig.settings | 66 + 2.10/filters/GimpLevelsConfig.settings | 354 + 2.10/gimprc | 91 + 2.10/internal-data/custom.ggr | 4 + 2.10/menurc | 1319 ++++ 2.10/palettes/gaga-g.gpl | 11 + 2.10/parasiterc | 8 + 2.10/plug-ins/layerfx/layerfx.py | 6568 +++++++++++++++++ 2.10/pluginrc | 4750 ++++++++++++ 2.10/profilerc | 4 + 2.10/tags.xml | 2160 ++++++ 2.10/templaterc | 500 ++ 2.10/themerc | 17 + 2.10/tool-options/gimp-airbrush-tool | 13 + 2.10/tool-options/gimp-align-tool | 4 + .../gimp-brightness-contrast-tool | 4 + 2.10/tool-options/gimp-bucket-fill-tool | 9 + 2.10/tool-options/gimp-by-color-select-tool | 4 + 2.10/tool-options/gimp-cage-tool | 4 + 2.10/tool-options/gimp-clone-tool | 14 + 2.10/tool-options/gimp-color-picker-tool | 5 + 2.10/tool-options/gimp-convolve-tool | 13 + 2.10/tool-options/gimp-crop-tool | 12 + 2.10/tool-options/gimp-curves-tool | 4 + 2.10/tool-options/gimp-dodge-burn-tool | 12 + 2.10/tool-options/gimp-ellipse-select-tool | 5 + 2.10/tool-options/gimp-eraser-tool | 12 + 2.10/tool-options/gimp-flip-tool | 5 + 2.10/tool-options/gimp-foreground-select-tool | 5 + 2.10/tool-options/gimp-free-select-tool | 4 + 2.10/tool-options/gimp-fuzzy-select-tool | 6 + 2.10/tool-options/gimp-gegl-tool | 4 + 2.10/tool-options/gimp-gradient-tool | 8 + 2.10/tool-options/gimp-handle-transform-tool | 5 + 2.10/tool-options/gimp-heal-tool | 13 + 2.10/tool-options/gimp-ink-tool | 7 + 2.10/tool-options/gimp-iscissors-tool | 4 + 2.10/tool-options/gimp-levels-tool | 4 + 2.10/tool-options/gimp-measure-tool | 5 + 2.10/tool-options/gimp-move-tool | 5 + 2.10/tool-options/gimp-mypaint-brush-tool | 10 + 2.10/tool-options/gimp-offset-tool | 5 + 2.10/tool-options/gimp-operation-tool | 5 + 2.10/tool-options/gimp-paintbrush-tool | 13 + 2.10/tool-options/gimp-pencil-tool | 13 + 2.10/tool-options/gimp-perspective-clone-tool | 13 + 2.10/tool-options/gimp-perspective-tool | 5 + 2.10/tool-options/gimp-rect-select-tool | 7 + 2.10/tool-options/gimp-rotate-tool | 5 + 2.10/tool-options/gimp-scale-tool | 6 + 2.10/tool-options/gimp-shear-tool | 4 + 2.10/tool-options/gimp-smudge-tool | 13 + 2.10/tool-options/gimp-text-tool | 9 + 2.10/tool-options/gimp-threshold-tool | 4 + 2.10/tool-options/gimp-transform-3d-tool | 5 + 2.10/tool-options/gimp-unified-transform-tool | 6 + 2.10/tool-options/gimp-vector-tool | 10 + 2.10/tool-options/gimp-warp-tool | 4 + 2.10/tool-options/gimp-zoom-tool | 4 + 2.10/toolrc | 185 + 2.10/unitrc | 51 + 77 files changed, 17343 insertions(+) create mode 100644 .gitignore create mode 100644 2.10/action-history create mode 100644 2.10/colorrc create mode 100644 2.10/contextrc create mode 100644 2.10/controllerrc create mode 100644 2.10/devicerc create mode 100644 2.10/dockrc create mode 100644 2.10/filters/GimpBrightnessContrastConfig.settings create mode 100644 2.10/filters/GimpCurvesConfig.settings create mode 100644 2.10/filters/GimpGegl-gegl-dropshadow-config.settings create mode 100644 2.10/filters/GimpGegl-gegl-gaussian-blur-config.settings create mode 100644 2.10/filters/GimpGegl-gegl-hue-chroma-config.settings create mode 100644 2.10/filters/GimpGegl-gegl-noise-cie-lch-config.settings create mode 100644 2.10/filters/GimpGegl-gegl-saturation-config.settings create mode 100644 2.10/filters/GimpGegl-gegl-shadows-highlights-config.settings create mode 100644 2.10/filters/GimpGegl-gimp-desaturate-config.settings create mode 100644 2.10/filters/GimpHueSaturationConfig.settings create mode 100644 2.10/filters/GimpLevelsConfig.settings create mode 100644 2.10/gimprc create mode 100644 2.10/internal-data/custom.ggr create mode 100644 2.10/menurc create mode 100644 2.10/palettes/gaga-g.gpl create mode 100644 2.10/parasiterc create mode 100755 2.10/plug-ins/layerfx/layerfx.py create mode 100644 2.10/pluginrc create mode 100644 2.10/profilerc create mode 100644 2.10/tags.xml create mode 100644 2.10/templaterc create mode 100644 2.10/themerc create mode 100644 2.10/tool-options/gimp-airbrush-tool create mode 100644 2.10/tool-options/gimp-align-tool create mode 100644 2.10/tool-options/gimp-brightness-contrast-tool create mode 100644 2.10/tool-options/gimp-bucket-fill-tool create mode 100644 2.10/tool-options/gimp-by-color-select-tool create mode 100644 2.10/tool-options/gimp-cage-tool create mode 100644 2.10/tool-options/gimp-clone-tool create mode 100644 2.10/tool-options/gimp-color-picker-tool create mode 100644 2.10/tool-options/gimp-convolve-tool create mode 100644 2.10/tool-options/gimp-crop-tool create mode 100644 2.10/tool-options/gimp-curves-tool create mode 100644 2.10/tool-options/gimp-dodge-burn-tool create mode 100644 2.10/tool-options/gimp-ellipse-select-tool create mode 100644 2.10/tool-options/gimp-eraser-tool create mode 100644 2.10/tool-options/gimp-flip-tool create mode 100644 2.10/tool-options/gimp-foreground-select-tool create mode 100644 2.10/tool-options/gimp-free-select-tool create mode 100644 2.10/tool-options/gimp-fuzzy-select-tool create mode 100644 2.10/tool-options/gimp-gegl-tool create mode 100644 2.10/tool-options/gimp-gradient-tool create mode 100644 2.10/tool-options/gimp-handle-transform-tool create mode 100644 2.10/tool-options/gimp-heal-tool create mode 100644 2.10/tool-options/gimp-ink-tool create mode 100644 2.10/tool-options/gimp-iscissors-tool create mode 100644 2.10/tool-options/gimp-levels-tool create mode 100644 2.10/tool-options/gimp-measure-tool create mode 100644 2.10/tool-options/gimp-move-tool create mode 100644 2.10/tool-options/gimp-mypaint-brush-tool create mode 100644 2.10/tool-options/gimp-offset-tool create mode 100644 2.10/tool-options/gimp-operation-tool create mode 100644 2.10/tool-options/gimp-paintbrush-tool create mode 100644 2.10/tool-options/gimp-pencil-tool create mode 100644 2.10/tool-options/gimp-perspective-clone-tool create mode 100644 2.10/tool-options/gimp-perspective-tool create mode 100644 2.10/tool-options/gimp-rect-select-tool create mode 100644 2.10/tool-options/gimp-rotate-tool create mode 100644 2.10/tool-options/gimp-scale-tool create mode 100644 2.10/tool-options/gimp-shear-tool create mode 100644 2.10/tool-options/gimp-smudge-tool create mode 100644 2.10/tool-options/gimp-text-tool create mode 100644 2.10/tool-options/gimp-threshold-tool create mode 100644 2.10/tool-options/gimp-transform-3d-tool create mode 100644 2.10/tool-options/gimp-unified-transform-tool create mode 100644 2.10/tool-options/gimp-vector-tool create mode 100644 2.10/tool-options/gimp-warp-tool create mode 100644 2.10/tool-options/gimp-zoom-tool create mode 100644 2.10/toolrc create mode 100644 2.10/unitrc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..62d0ac8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +sessionrc +tmp/ diff --git a/2.10/action-history b/2.10/action-history new file mode 100644 index 0000000..93e6183 --- /dev/null +++ b/2.10/action-history @@ -0,0 +1,104 @@ +# GIMP action-history + +(history-item "file-export-as" 5) +(history-item "tools-size-decrease" 2) +(history-item "file-open" 0) +(history-item "layers-new" 2) +(history-item "file-save" 1) +(history-item "tools-size-increase" 1) +(history-item "layers-duplicate" 1) +(history-item "image-scale" 2) +(history-item "file-export" 3) +(history-item "filters-gaussian-blur" 1) +(history-item "edit-clear" 2) +(history-item "tools-ink" 0) +(history-item "select-none" 1) +(history-item "palette-editor-zoom-in" 0) +(history-item "tools-bucket-fill" 0) +(history-item "tools-rect-select" 0) +(history-item "filters-levels" 0) +(history-item "layers-merge-down-button" 0) +(history-item "file-save-as" 1) +(history-item "tools-iscissors" 0) +(history-item "select-invert" 0) +(history-item "tools-ellipse-select" 0) +(history-item "file-open-recent-06" 0) +(history-item "file-create-template" 0) +(history-item "filters-desaturate" 0) +(history-item "layers-delete" 0) +(history-item "layers-new-group" 0) +(history-item "file-quit" 0) +(history-item "image-rotate-270" 0) +(history-item "image-resize" 0) +(history-item "edit-copy" 0) +(history-item "edit-paste" 0) +(history-item "layers-anchor" 0) +(history-item "script-fu-guide-new-percent" 0) +(history-item "images-raise-views" 0) +(history-item "plug-in-metadata-editor" 0) +(history-item "plug-in-metadata-viewer" 0) +(history-item "file-save-and-close" 0) +(history-item "file-overwrite" 0) +(history-item "layers-lower" 0) +(history-item "layers-raise" 0) +(history-item "filters-shadows-highlights" 0) +(history-item "filters-curves" 0) +(history-item "file-open-recent-04" 0) +(history-item "tools-by-color-select" 0) +(history-item "tools-gradient" 0) +(history-item "tools-move" 0) +(history-item "tools-paintbrush" 0) +(history-item "tools-text" 0) +(history-item "tools-free-select" 0) +(history-item "dockable-close-tab" 0) +(history-item "image-new" 0) +(history-item "palette-editor-zoom-all" 0) +(history-item "image-rotate-90" 0) +(history-item "tools-convolve" 0) +(history-item "tools-heal" 0) +(history-item "vectors-selection-replace" 0) +(history-item "select-feather" 0) +(history-item "filters-dropshadow" 0) +(history-item "layers-merge-down" 0) +(history-item "script-fu-guide-new" 0) +(history-item "file-open-recent-02" 0) +(history-item "palette-editor-zoom-out" 0) +(history-item "tools-clone" 0) +(history-item "filters-saturation" 0) +(history-item "tools-vector" 0) +(history-item "image-flip-horizontal" 0) +(history-item "dialogs-selection-editor" 0) +(history-item "windows-tab-position" 0) +(history-item "dialogs-preferences" 0) +(history-item "tools-rotate" 0) +(history-item "dialogs-palettes" 0) +(history-item "palettes-edit" 0) +(history-item "tools-opacity-decrease" 0) +(history-item "tools-scale" 0) +(history-item "view-zoom-revert" 0) +(history-item "filters-brightness-contrast" 0) +(history-item "file-open-recent-01" 0) +(history-item "filters-hue-saturation" 0) +(history-item "view-navigation-window" 0) +(history-item "image-properties" 0) +(history-item "dialogs-images" 0) +(history-item "dockable-detach-tab" 0) +(history-item "view-close" 0) +(history-item "select-grow" 0) +(history-item "image-configure-grid" 0) +(history-item "dialogs-input-devices" 0) +(history-item "dialogs-dashboard" 0) +(history-item "dialogs-device-status" 0) +(history-item "filters-color-balance" 0) +(history-item "tools-eraser" 0) +(history-item "file-open-recent-07" 0) +(history-item "file-open-location" 0) +(history-item "filters-hue-chroma" 0) +(history-item "tools-smudge" 0) +(history-item "tools-airbrush" 0) +(history-item "plug-in-gimpressionist" 0) +(history-item "tools-fuzzy-select" 0) +(history-item "layers-alpha-add" 0) +(history-item "windows-show-display-next" 0) + +# end of action-history diff --git a/2.10/colorrc b/2.10/colorrc new file mode 100644 index 0000000..1677688 --- /dev/null +++ b/2.10/colorrc @@ -0,0 +1,263 @@ +# GIMP colorrc +# +# This file holds a list of recently used colors. + +(color-history + (color-rgba 0.94509803921568625 0.48627450980392156 0.23921568627450981 1) + (color-rgba 0.73333333333333328 0.93725490196078431 0.87058823529411766 1) + (color-rgba 0.80000000000000004 0.90588235294117647 0.74509803921568629 1) + (color-rgba 0.18823529411764706 0.59215686274509804 0.42745098039215684 1) + (color-rgba 0 0 0 1) + (color-rgba 1 1 1 1) + (color-rgba 0.98529411764705888 0 0 1) + (color-rgba 0.60784313725490191 0.61960784313725492 0.65490196078431373 1) + (color-rgba 0.98039215686274506 0.98039215686274506 0.98039215686274506 1) + (color-rgba 0.73404255319148926 0.32854007917341455 0.21532438478747201 1) + (color-rgba 0.11274509803921573 0.070510489607358312 0.03632056849585473 1) + (color-rgba 0.8936170212765957 0.32854007917341455 0.21532438478747201 1) + (color-rgba 0.58333333333333326 0.32854007917341455 0.21532438478747201 1) + (color-rgba 0.49019607843137258 0.20319491604848539 0.07566785103303067 1) + (color-rgba 0.93617021276595747 0.36454066356760395 0.11054086063955783 1) + (color-rgba 0.36764705882352944 0.22174403141687618 0.1036320568495855 1) + (color-rgba 0.85784313725490202 0.54603791357588594 0.2936241610738255 1) + (color-rgba 0.63829787234042556 0.41489361702127658 0.23404255319148937 1) + (color-rgba 0.88725490196078427 0.41489361702127658 0.23404255319148937 1) + (color-rgba 0.88725490196078427 0.53785194494814337 0.23404255319148937 1) + (color-rgba 0.88725490196078427 0.53785194494814337 0.26200815896828528 1) + (color-rgba 0.68627450980392157 0.36454066356760395 0.11054086063955783 1) + (color-rgba 0.9882352941176471 0.9882352941176471 0.9882352941176471 1) + (color-rgba 0.97647058823529409 0.97647058823529409 0.97647058823529409 1) + (color-rgba 0.96862745098039216 0.96862745098039216 0.96862745098039216 1) + (color-rgba 0.95686274509803926 0.95686274509803926 0.95686274509803926 1) + (color-rgba 0.94509803921568625 0.94509803921568625 0.94509803921568625 1) + (color-rgba 0.93333333333333335 0.93333333333333335 0.93333333333333335 1) + (color-rgba 0.92156862745098034 0.92156862745098034 0.92156862745098034 1) + (color-rgba 0.90980392156862744 0.90980392156862744 0.90980392156862744 1) + (color-rgba 0.90196078431372551 0.90196078431372551 0.90196078431372551 1) + (color-rgba 0.8901960784313725 0.8901960784313725 0.8901960784313725 1) + (color-rgba 0.8784313725490196 0.8784313725490196 0.8784313725490196 1) + (color-rgba 0.8666666666666667 0.8666666666666667 0.8666666666666667 1) + (color-rgba 0.85490196078431369 0.85490196078431369 0.85490196078431369 1) + (color-rgba 0.84313725490196079 0.84313725490196079 0.84313725490196079 1) + (color-rgba 0.83529411764705885 0.83529411764705885 0.83529411764705885 1) + (color-rgba 0.82352941176470584 0.82352941176470584 0.82352941176470584 1) + (color-rgba 0.81176470588235294 0.81176470588235294 0.81176470588235294 1) + (color-rgba 0.80000000000000004 0.80000000000000004 0.80000000000000004 1) + (color-rgba 0.78823529411764703 0.78823529411764703 0.78823529411764703 1) + (color-rgba 0.77647058823529413 0.77647058823529413 0.77647058823529413 1) + (color-rgba 0.7686274509803922 0.7686274509803922 0.7686274509803922 1) + (color-rgba 0.75686274509803919 0.75686274509803919 0.75686274509803919 1) + (color-rgba 0.74509803921568629 0.74509803921568629 0.74509803921568629 1) + (color-rgba 0.73333333333333328 0.73333333333333328 0.73333333333333328 1) + (color-rgba 0.72156862745098038 0.72156862745098038 0.72156862745098038 1) + (color-rgba 0.70980392156862748 0.70980392156862748 0.70980392156862748 1) + (color-rgba 0.70196078431372544 0.70196078431372544 0.70196078431372544 1) + (color-rgba 0.69019607843137254 0.69019607843137254 0.69019607843137254 1) + (color-rgba 0.67843137254901964 0.67843137254901964 0.67843137254901964 1) + (color-rgba 0.66666666666666663 0.66666666666666663 0.66666666666666663 1) + (color-rgba 0.65490196078431373 0.65490196078431373 0.65490196078431373 1) + (color-rgba 0.64313725490196083 0.64313725490196083 0.64313725490196083 1) + (color-rgba 0.63529411764705879 0.63529411764705879 0.63529411764705879 1) + (color-rgba 0.62352941176470589 0.62352941176470589 0.62352941176470589 1) + (color-rgba 0.61176470588235299 0.61176470588235299 0.61176470588235299 1) + (color-rgba 0.59999999999999998 0.59999999999999998 0.59999999999999998 1) + (color-rgba 0.58823529411764708 0.58823529411764708 0.58823529411764708 1) + (color-rgba 0.57647058823529407 0.57647058823529407 0.57647058823529407 1) + (color-rgba 0.56862745098039214 0.56862745098039214 0.56862745098039214 1) + (color-rgba 0.55686274509803924 0.55686274509803924 0.55686274509803924 1) + (color-rgba 0.54509803921568623 0.54509803921568623 0.54509803921568623 1) + (color-rgba 0.53333333333333333 0.53333333333333333 0.53333333333333333 1) + (color-rgba 0.52156862745098043 0.52156862745098043 0.52156862745098043 1) + (color-rgba 0.50980392156862742 0.50980392156862742 0.50980392156862742 1) + (color-rgba 0.50196078431372548 0.50196078431372548 0.50196078431372548 1) + (color-rgba 0.49019607843137253 0.49019607843137253 0.49019607843137253 1) + (color-rgba 0.47843137254901963 0.47843137254901963 0.47843137254901963 1) + (color-rgba 0.46666666666666667 0.46666666666666667 0.46666666666666667 1) + (color-rgba 0.45490196078431372 0.45490196078431372 0.45490196078431372 1) + (color-rgba 0.44313725490196076 0.44313725490196076 0.44313725490196076 1) + (color-rgba 0.43529411764705883 0.43529411764705883 0.43529411764705883 1) + (color-rgba 0.42352941176470588 0.42352941176470588 0.42352941176470588 1) + (color-rgba 0.41176470588235292 0.41176470588235292 0.41176470588235292 1) + (color-rgba 0.40000000000000002 0.40000000000000002 0.40000000000000002 1) + (color-rgba 0.38823529411764707 0.38823529411764707 0.38823529411764707 1) + (color-rgba 0.37647058823529411 0.37647058823529411 0.37647058823529411 1) + (color-rgba 0.36862745098039218 0.36862745098039218 0.36862745098039218 1) + (color-rgba 0.35686274509803922 0.35686274509803922 0.35686274509803922 1) + (color-rgba 0.34509803921568627 0.34509803921568627 0.34509803921568627 1) + (color-rgba 0.33333333333333331 0.33333333333333331 0.33333333333333331 1) + (color-rgba 0.32156862745098042 0.32156862745098042 0.32156862745098042 1) + (color-rgba 0.30980392156862746 0.30980392156862746 0.30980392156862746 1) + (color-rgba 0.30196078431372547 0.30196078431372547 0.30196078431372547 1) + (color-rgba 0.29019607843137257 0.29019607843137257 0.29019607843137257 1) + (color-rgba 0.27843137254901962 0.27843137254901962 0.27843137254901962 1) + (color-rgba 0.26666666666666666 0.26666666666666666 0.26666666666666666 1) + (color-rgba 0.25490196078431371 0.25490196078431371 0.25490196078431371 1) + (color-rgba 0.24313725490196078 0.24313725490196078 0.24313725490196078 1) + (color-rgba 0.23529411764705882 0.23529411764705882 0.23529411764705882 1) + (color-rgba 0.22352941176470589 0.22352941176470589 0.22352941176470589 1) + (color-rgba 0.21176470588235294 0.21176470588235294 0.21176470588235294 1) + (color-rgba 0.20000000000000001 0.20000000000000001 0.20000000000000001 1) + (color-rgba 0.18823529411764706 0.18823529411764706 0.18823529411764706 1) + (color-rgba 0.17647058823529413 0.17647058823529413 0.17647058823529413 1) + (color-rgba 0.16862745098039217 0.16862745098039217 0.16862745098039217 1) + (color-rgba 0.15686274509803921 0.15686274509803921 0.15686274509803921 1) + (color-rgba 0.14509803921568629 0.14509803921568629 0.14509803921568629 1) + (color-rgba 0.13333333333333333 0.13333333333333333 0.13333333333333333 1) + (color-rgba 0.12156862745098039 0.12156862745098039 0.12156862745098039 1) + (color-rgba 0.10980392156862745 0.10980392156862745 0.10980392156862745 1) + (color-rgba 0.10196078431372549 0.10196078431372549 0.10196078431372549 1) + (color-rgba 0.090196078431372548 0.090196078431372548 0.090196078431372548 1) + (color-rgba 0.078431372549019607 0.078431372549019607 0.078431372549019607 1) + (color-rgba 0.066666666666666666 0.066666666666666666 0.066666666666666666 1) + (color-rgba 0.054901960784313725 0.054901960784313725 0.054901960784313725 1) + (color-rgba 0.043137254901960784 0.043137254901960784 0.043137254901960784 1) + (color-rgba 0.035294117647058823 0.035294117647058823 0.035294117647058823 1) + (color-rgba 0.023529411764705882 0.023529411764705882 0.023529411764705882 1) + (color-rgba 0.011764705882352941 0.011764705882352941 0.011764705882352941 1) + (color-rgba 0.99215686274509807 0.99215686274509807 0.99215686274509807 1) + (color-rgba 0.97254901960784312 0.97254901960784312 0.97254901960784312 1) + (color-rgba 0.96470588235294119 0.96470588235294119 0.96470588235294119 1) + (color-rgba 0.95294117647058818 0.95294117647058818 0.95294117647058818 1) + (color-rgba 0.93725490196078431 0.93725490196078431 0.93725490196078431 1) + (color-rgba 0.92549019607843142 0.92549019607843142 0.92549019607843142 1) + (color-rgba 0.91764705882352937 0.91764705882352937 0.91764705882352937 1) + (color-rgba 0.88235294117647056 0.88235294117647056 0.88235294117647056 1) + (color-rgba 0.87450980392156863 0.87450980392156863 0.87450980392156863 1) + (color-rgba 0.86274509803921573 0.86274509803921573 0.86274509803921573 1) + (color-rgba 0.84705882352941175 0.84705882352941175 0.84705882352941175 1) + (color-rgba 0.82745098039215681 0.82745098039215681 0.82745098039215681 1) + (color-rgba 0.81960784313725488 0.81960784313725488 0.81960784313725488 1) + (color-rgba 0.80784313725490198 0.80784313725490198 0.80784313725490198 1) + (color-rgba 0.792156862745098 0.792156862745098 0.792156862745098 1) + (color-rgba 0.7803921568627451 0.7803921568627451 0.7803921568627451 1) + (color-rgba 0.77254901960784317 0.77254901960784317 0.77254901960784317 1) + (color-rgba 0.76470588235294112 0.76470588235294112 0.76470588235294112 1) + (color-rgba 0.75294117647058822 0.75294117647058822 0.75294117647058822 1) + (color-rgba 0.73725490196078436 0.73725490196078436 0.73725490196078436 1) + (color-rgba 0.72549019607843135 0.72549019607843135 0.72549019607843135 1) + (color-rgba 0.71764705882352942 0.71764705882352942 0.71764705882352942 1) + (color-rgba 0.68235294117647061 0.68235294117647061 0.68235294117647061 1) + (color-rgba 0.67450980392156867 0.67450980392156867 0.67450980392156867 1) + (color-rgba 0.66274509803921566 0.66274509803921566 0.66274509803921566 1) + (color-rgba 0.6470588235294118 0.6470588235294118 0.6470588235294118 1) + (color-rgba 0.62745098039215685 0.62745098039215685 0.62745098039215685 1) + (color-rgba 0.61960784313725492 0.61960784313725492 0.61960784313725492 1) + (color-rgba 0.60784313725490191 0.60784313725490191 0.60784313725490191 1) + (color-rgba 0.59215686274509804 0.59215686274509804 0.59215686274509804 1) + (color-rgba 0.58039215686274515 0.58039215686274515 0.58039215686274515 1) + (color-rgba 0.5725490196078431 0.5725490196078431 0.5725490196078431 1) + (color-rgba 0.56470588235294117 0.56470588235294117 0.56470588235294117 1) + (color-rgba 0.55294117647058827 0.55294117647058827 0.55294117647058827 1) + (color-rgba 0.53725490196078429 0.53725490196078429 0.53725490196078429 1) + (color-rgba 0.52549019607843139 0.52549019607843139 0.52549019607843139 1) + (color-rgba 0.51764705882352946 0.51764705882352946 0.51764705882352946 1) + (color-rgba 0.4823529411764706 0.4823529411764706 0.4823529411764706 1) + (color-rgba 0.47450980392156861 0.47450980392156861 0.47450980392156861 1) + (color-rgba 0.46274509803921571 0.46274509803921571 0.46274509803921571 1) + (color-rgba 0.44705882352941179 0.44705882352941179 0.44705882352941179 1) + (color-rgba 0.42745098039215684 0.42745098039215684 0.42745098039215684 1) + (color-rgba 0.41960784313725491 0.41960784313725491 0.41960784313725491 1) + (color-rgba 0.40784313725490196 0.40784313725490196 0.40784313725490196 1) + (color-rgba 0.39215686274509803 0.39215686274509803 0.39215686274509803 1) + (color-rgba 0.38039215686274508 0.38039215686274508 0.38039215686274508 1) + (color-rgba 0.37254901960784315 0.37254901960784315 0.37254901960784315 1) + (color-rgba 0.36470588235294116 0.36470588235294116 0.36470588235294116 1) + (color-rgba 0.35294117647058826 0.35294117647058826 0.35294117647058826 1) + (color-rgba 0.33725490196078434 0.33725490196078434 0.33725490196078434 1) + (color-rgba 0.32549019607843138 0.32549019607843138 0.32549019607843138 1) + (color-rgba 0.31764705882352939 0.31764705882352939 0.31764705882352939 1) + (color-rgba 0.28235294117647058 0.28235294117647058 0.28235294117647058 1) + (color-rgba 0.27450980392156865 0.27450980392156865 0.27450980392156865 1) + (color-rgba 0.2627450980392157 0.2627450980392157 0.2627450980392157 1) + (color-rgba 0.24705882352941178 0.24705882352941178 0.24705882352941178 1) + (color-rgba 0.22745098039215686 0.22745098039215686 0.22745098039215686 1) + (color-rgba 0.2196078431372549 0.2196078431372549 0.2196078431372549 1) + (color-rgba 0.20784313725490197 0.20784313725490197 0.20784313725490197 1) + (color-rgba 0.19215686274509805 0.19215686274509805 0.19215686274509805 1) + (color-rgba 0.1803921568627451 0.1803921568627451 0.1803921568627451 1) + (color-rgba 0.17254901960784313 0.17254901960784313 0.17254901960784313 1) + (color-rgba 0.16470588235294117 0.16470588235294117 0.16470588235294117 1) + (color-rgba 0.15294117647058825 0.15294117647058825 0.15294117647058825 1) + (color-rgba 0.13725490196078433 0.13725490196078433 0.13725490196078433 1) + (color-rgba 0.12549019607843137 0.12549019607843137 0.12549019607843137 1) + (color-rgba 0.11764705882352941 0.11764705882352941 0.11764705882352941 1) + (color-rgba 0.082352941176470587 0.082352941176470587 0.082352941176470587 1) + (color-rgba 0.074509803921568626 0.074509803921568626 0.074509803921568626 1) + (color-rgba 0.062745098039215685 0.062745098039215685 0.062745098039215685 1) + (color-rgba 0.047058823529411764 0.047058823529411764 0.047058823529411764 1) + (color-rgba 0.027450980392156862 0.027450980392156862 0.027450980392156862 1) + (color-rgba 0.019607843137254902 0.019607843137254902 0.019607843137254902 1) + (color-rgba 0.0078431372549019607 0.0078431372549019607 0.0078431372549019607 1) + (color-rgba 0.89803921568627454 0.89803921568627454 0.89803921568627454 1) + (color-rgba 0.87058823529411766 0.87058823529411766 0.87058823529411766 1) + (color-rgba 0.81568627450980391 0.81568627450980391 0.81568627450980391 1) + (color-rgba 0.76078431372549016 0.76078431372549016 0.76078431372549016 1) + (color-rgba 0.74117647058823533 0.74117647058823533 0.74117647058823533 1) + (color-rgba 0.71372549019607845 0.71372549019607845 0.71372549019607845 1) + (color-rgba 0.70588235294117652 0.70588235294117652 0.70588235294117652 1) + (color-rgba 0.69803921568627447 0.69803921568627447 0.69803921568627447 1) + (color-rgba 0.68627450980392157 0.68627450980392157 0.68627450980392157 1) + (color-rgba 0.6705882352941176 0.6705882352941176 0.6705882352941176 1) + (color-rgba 0.6588235294117647 0.6588235294117647 0.6588235294117647 1) + (color-rgba 0.65098039215686276 0.65098039215686276 0.65098039215686276 1) + (color-rgba 0.63137254901960782 0.63137254901960782 0.63137254901960782 1) + (color-rgba 0.61568627450980395 0.61568627450980395 0.61568627450980395 1) + (color-rgba 0.60392156862745094 0.60392156862745094 0.60392156862745094 1) + (color-rgba 0.59607843137254901 0.59607843137254901 0.59607843137254901 1) + (color-rgba 0.5607843137254902 0.5607843137254902 0.5607843137254902 1) + (color-rgba 0.5490196078431373 0.5490196078431373 0.5490196078431373 1) + (color-rgba 0.54117647058823526 0.54117647058823526 0.54117647058823526 1) + (color-rgba 0.51372549019607838 0.51372549019607838 0.51372549019607838 1) + (color-rgba 0.50588235294117645 0.50588235294117645 0.50588235294117645 1) + (color-rgba 0.49411764705882355 0.49411764705882355 0.49411764705882355 1) + (color-rgba 0.48627450980392156 0.48627450980392156 0.48627450980392156 1) + (color-rgba 0.45882352941176469 0.45882352941176469 0.45882352941176469 1) + (color-rgba 0.45098039215686275 0.45098039215686275 0.45098039215686275 1) + (color-rgba 0.4392156862745098 0.4392156862745098 0.4392156862745098 1) + (color-rgba 0.43137254901960786 0.43137254901960786 0.43137254901960786 1) + (color-rgba 0.40392156862745099 0.40392156862745099 0.40392156862745099 1) + (color-rgba 0.396078431372549 0.396078431372549 0.396078431372549 1) + (color-rgba 0.3843137254901961 0.3843137254901961 0.3843137254901961 1) + (color-rgba 0.34901960784313724 0.34901960784313724 0.34901960784313724 1) + (color-rgba 0.3411764705882353 0.3411764705882353 0.3411764705882353 1) + (color-rgba 0.32941176470588235 0.32941176470588235 0.32941176470588235 1) + (color-rgba 0.31372549019607843 0.31372549019607843 0.31372549019607843 1) + (color-rgba 0.29411764705882354 0.29411764705882354 0.29411764705882354 1) + (color-rgba 0.28627450980392155 0.28627450980392155 0.28627450980392155 1) + (color-rgba 0.25882352941176473 0.25882352941176473 0.25882352941176473 1) + (color-rgba 0.23921568627450981 0.23921568627450981 0.23921568627450981 1) + (color-rgba 0.18431372549019609 0.18431372549019609 0.18431372549019609 1) + (color-rgba 0.12941176470588237 0.12941176470588237 0.12941176470588237 1) + (color-rgba 0.74901960784313726 0.74901960784313726 0.74901960784313726 1) + (color-rgba 0.25098039215686274 0.25098039215686274 0.25098039215686274 1) + (color-rgba 0.96078431372549022 0.96078431372549022 0.96078431372549022 1) + (color-rgba 0.90588235294117647 0.90588235294117647 0.90588235294117647 1) + (color-rgba 0.88627450980392153 0.88627450980392153 0.88627450980392153 1) + (color-rgba 0.85098039215686272 0.85098039215686272 0.85098039215686272 1) + (color-rgba 0.83137254901960789 0.83137254901960789 0.83137254901960789 1) + (color-rgba 0.58431372549019611 0.58431372549019611 0.58431372549019611 1) + (color-rgba 0.52941176470588236 0.52941176470588236 0.52941176470588236 1) + (color-rgba 0.47058823529411764 0.47058823529411764 0.47058823529411764 1) + (color-rgba 0.41568627450980394 0.41568627450980394 0.41568627450980394 1) + (color-rgba 0.14901960784313725 0.14901960784313725 0.14901960784313725 1) + (color-rgba 0.11372549019607843 0.11372549019607843 0.11372549019607843 1) + (color-rgba 0.094117647058823528 0.094117647058823528 0.094117647058823528 1) + (color-rgba 0.039215686274509803 0.039215686274509803 0.039215686274509803 1) + (color-rgba 0.89411764705882357 0.89411764705882357 0.89411764705882357 1) + (color-rgba 0.72941176470588232 0.72941176470588232 0.72941176470588232 1) + (color-rgba 0.27058823529411763 0.27058823529411763 0.27058823529411763 1) + (color-rgba 0.10588235294117647 0.10588235294117647 0.10588235294117647 1) + (color-rgba 0.85882352941176465 0.85882352941176465 0.85882352941176465 1) + (color-rgba 0.79607843137254897 0.79607843137254897 0.79607843137254897 1) + (color-rgba 0.69411764705882351 0.69411764705882351 0.69411764705882351 1) + (color-rgba 0.30588235294117649 0.30588235294117649 0.30588235294117649 1) + (color-rgba 0.20392156862745098 0.20392156862745098 0.20392156862745098 1) + (color-rgba 0.14117647058823529 0.14117647058823529 0.14117647058823529 1) + (color-rgba 0.94901960784313721 0.94901960784313721 0.94901960784313721 1) + (color-rgba 0.050980392156862744 0.050980392156862744 0.050980392156862744 1) + (color-rgba 0.94117647058823528 0.94117647058823528 0.94117647058823528 1) + (color-rgba 0.058823529411764705 0.058823529411764705 0.058823529411764705 1) + (color-rgba 0.80392156862745101 0.80392156862745101 0.80392156862745101 1) + (color-rgba 0.63921568627450975 0.63921568627450975 0.63921568627450975 1)) + +# end of colorrc diff --git a/2.10/contextrc b/2.10/contextrc new file mode 100644 index 0000000..91d8d8b --- /dev/null +++ b/2.10/contextrc @@ -0,0 +1,15 @@ +# GIMP user context + +(tool "gimp-crop-tool") +(paint-info "gimp-paintbrush") +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(mybrush "Standard") +(pattern "Pine") +(gradient "FG to BG (RGB)") +(palette "gaga-g") +(font "Sans-serif") +(tool-preset "Core Pointer") + +# end of user context diff --git a/2.10/controllerrc b/2.10/controllerrc new file mode 100644 index 0000000..d1e8c9f --- /dev/null +++ b/2.10/controllerrc @@ -0,0 +1,40 @@ +# GIMP controllerrc +# +# This file will be entirely rewritten each time you exit. + +(GimpControllerInfo "Main Mouse Wheel" + (icon-name "gimp-controller-wheel") + (enabled yes) + (debug-events no) + (controller "GimpControllerWheel") + (mapping + (map "scroll-down-shift-primary" "tools-aspect-decrease") + (map "scroll-up-shift-alt" "tools-angle-increase") + (map "scroll-up-alt" "tools-opacity-increase") + (map "scroll-down-shift-alt" "tools-angle-decrease") + (map "scroll-down-primary-alt" "tools-size-decrease") + (map "scroll-up-shift-primary-alt" "tools-spacing-increase") + (map "scroll-down-alt" "tools-opacity-decrease") + (map "scroll-up-primary-alt" "tools-size-increase") + (map "scroll-up-shift-primary" "tools-aspect-increase") + (map "scroll-down-shift-primary-alt" "tools-spacing-decrease"))) +(GimpControllerInfo "Main Keyboard" + (icon-name "gimp-controller-keyboard") + (enabled yes) + (debug-events no) + (controller "GimpControllerKeyboard") + (mapping + (map "cursor-right-alt" "tools-size-increase") + (map "cursor-left-shift" "view-scroll-page-left") + (map "cursor-right-shift" "view-scroll-page-right") + (map "cursor-up-shift" "view-scroll-page-up") + (map "cursor-up-primary" "view-scroll-top-border") + (map "cursor-down-primary" "view-scroll-bottom-border") + (map "cursor-up-alt" "tools-size-increase-skip") + (map "cursor-left-alt" "tools-size-decrease") + (map "cursor-down-shift" "view-scroll-page-down") + (map "cursor-right-primary" "view-scroll-right-border") + (map "cursor-left-primary" "view-scroll-left-border") + (map "cursor-down-alt" "tools-size-decrease-skip"))) + +# end of controllerrc diff --git a/2.10/devicerc b/2.10/devicerc new file mode 100644 index 0000000..e755524 --- /dev/null +++ b/2.10/devicerc @@ -0,0 +1,177 @@ +# GIMP devicerc + +(GimpDeviceInfo "Core Pointer" + (icon-name "gimp-cursor") + (name "Core Pointer") + (tool-options "GimpCropOptions" + (aspect-denominator 1080) + (aspect-numerator 1920) + (desired-fixed-size-height 900) + (desired-fixed-size-width 900) + (guide thirds) + (overridden-fixed-aspect yes) + (overridden-fixed-size yes) + (tool "gimp-crop-tool") + (highlight-opacity 0.93000000000000005)) + (use-fg-bg no) + (use-brush no) + (use-dynamics no) + (use-mypaint-brush no) + (use-gradient no) + (use-pattern no) + (use-palette no) + (use-font no) + (mode screen) + (axes 2 x y) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 0) + (point-types 0) + (n-samples 256) + (samples 256 0 0.0039220000000000001 0.0078429999999999993 0.011764999999999999 0.015685999999999999 0.019608 0.023529000000000001 0.027451 0.031372999999999998 0.035293999999999999 0.039216000000000001 0.043137000000000002 0.047058999999999997 0.050979999999999998 0.054901999999999999 0.058824000000000001 0.062744999999999995 0.066667000000000004 0.070587999999999998 0.074510000000000007 0.078431000000000001 0.082352999999999996 0.086275000000000004 0.090195999999999998 0.094117999999999993 0.098039000000000001 0.101961 0.105882 0.109804 0.11372500000000001 0.117647 0.121569 0.12548999999999999 0.129412 0.13333300000000001 0.13725499999999999 0.141176 0.145098 0.14902000000000001 0.15294099999999999 0.156863 0.16078400000000001 0.16470599999999999 0.168627 0.17254900000000001 0.17647099999999999 0.180392 0.18431400000000001 0.18823500000000001 0.19215699999999999 0.196078 0.20000000000000001 0.20392199999999999 0.207843 0.21176500000000001 0.21568599999999999 0.219608 0.22352900000000001 0.22745099999999999 0.231373 0.235294 0.23921600000000001 0.24313699999999999 0.247059 0.25097999999999998 0.25490200000000002 0.258824 0.26274500000000001 0.26666699999999999 0.270588 0.27450999999999998 0.27843099999999998 0.28235300000000002 0.286275 0.29019600000000001 0.29411799999999999 0.298039 0.30196099999999998 0.30588199999999999 0.30980400000000002 0.31372499999999998 0.31764700000000001 0.32156899999999999 0.32549 0.32941199999999998 0.33333299999999999 0.33725500000000003 0.34117599999999998 0.34509800000000002 0.34902 0.352941 0.35686299999999999 0.36078399999999999 0.36470599999999997 0.36862699999999998 0.37254900000000002 0.376471 0.38039200000000001 0.38431399999999999 0.388235 0.39215699999999998 0.39607799999999999 0.40000000000000002 0.403922 0.40784300000000001 0.41176499999999999 0.415686 0.41960799999999998 0.42352899999999999 0.42745100000000003 0.43137300000000001 0.43529400000000001 0.439216 0.443137 0.44705899999999998 0.45097999999999999 0.45490199999999997 0.45882400000000001 0.46274500000000002 0.466667 0.47058800000000001 0.47450999999999999 0.478431 0.48235299999999998 0.48627500000000001 0.49019600000000002 0.494118 0.49803900000000001 0.50196099999999999 0.50588200000000005 0.50980400000000003 0.51372499999999999 0.51764699999999997 0.52156899999999995 0.52549000000000001 0.52941199999999999 0.53333299999999995 0.53725500000000004 0.54117599999999999 0.54509799999999997 0.54901999999999995 0.55294100000000002 0.556863 0.56078399999999995 0.56470600000000004 0.56862699999999999 0.57254899999999997 0.57647099999999996 0.58039200000000002 0.584314 0.58823499999999995 0.59215700000000004 0.596078 0.59999999999999998 0.60392199999999996 0.60784300000000002 0.611765 0.61568599999999996 0.61960800000000005 0.623529 0.62745099999999998 0.63137299999999996 0.63529400000000003 0.63921600000000001 0.64313699999999996 0.64705900000000005 0.65098 0.65490199999999998 0.65882399999999997 0.66274500000000003 0.66666700000000001 0.67058799999999996 0.67451000000000005 0.67843100000000001 0.68235299999999999 0.68627499999999997 0.69019600000000003 0.69411800000000001 0.69803899999999997 0.70196099999999995 0.70588200000000001 0.70980399999999999 0.71372500000000005 0.71764700000000003 0.72156900000000002 0.72548999999999997 0.72941199999999995 0.73333300000000001 0.73725499999999999 0.74117599999999995 0.74509800000000004 0.74902000000000002 0.75294099999999997 0.75686299999999995 0.76078400000000002 0.764706 0.76862699999999995 0.77254900000000004 0.77647100000000002 0.78039199999999997 0.78431399999999996 0.78823500000000002 0.792157 0.79607799999999995 0.80000000000000004 0.80392200000000003 0.80784299999999998 0.81176499999999996 0.81568600000000002 0.819608 0.82352899999999996 0.82745100000000005 0.83137300000000003 0.83529399999999998 0.83921599999999996 0.84313700000000003 0.84705900000000001 0.85097999999999996 0.85490200000000005 0.85882400000000003 0.86274499999999998 0.86666699999999997 0.87058800000000003 0.87451000000000001 0.87843099999999996 0.88235300000000005 0.88627500000000003 0.89019599999999999 0.89411799999999997 0.89803900000000003 0.90196100000000001 0.90588199999999997 0.90980399999999995 0.91372500000000001 0.91764699999999999 0.92156899999999997 0.92549000000000003 0.92941200000000002 0.93333299999999997 0.93725499999999995 0.94117600000000001 0.94509799999999999 0.94901999999999997 0.95294100000000004 0.95686300000000002 0.96078399999999997 0.96470599999999995 0.96862700000000002 0.972549 0.97647099999999998 0.98039200000000004 0.98431400000000002 0.98823499999999997 0.99215699999999996 0.99607800000000002 1))) +(GimpDeviceInfo "Gaming KB Gaming KB Consumer Control" + (name "Gaming KB Gaming KB Consumer Control") + (tool-options "GimpCropOptions" + (tool "gimp-crop-tool")) + (use-fg-bg no) + (use-brush no) + (use-dynamics no) + (use-mypaint-brush no) + (use-gradient no) + (use-pattern no) + (use-palette no) + (use-font no) + (mode disabled) + (axes 4 x y pressure xtilt) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 0) + (point-types 0) + (n-samples 256) + (samples 256 0 0.0039220000000000001 0.0078429999999999993 0.011764999999999999 0.015685999999999999 0.019608 0.023529000000000001 0.027451 0.031372999999999998 0.035293999999999999 0.039216000000000001 0.043137000000000002 0.047058999999999997 0.050979999999999998 0.054901999999999999 0.058824000000000001 0.062744999999999995 0.066667000000000004 0.070587999999999998 0.074510000000000007 0.078431000000000001 0.082352999999999996 0.086275000000000004 0.090195999999999998 0.094117999999999993 0.098039000000000001 0.101961 0.105882 0.109804 0.11372500000000001 0.117647 0.121569 0.12548999999999999 0.129412 0.13333300000000001 0.13725499999999999 0.141176 0.145098 0.14902000000000001 0.15294099999999999 0.156863 0.16078400000000001 0.16470599999999999 0.168627 0.17254900000000001 0.17647099999999999 0.180392 0.18431400000000001 0.18823500000000001 0.19215699999999999 0.196078 0.20000000000000001 0.20392199999999999 0.207843 0.21176500000000001 0.21568599999999999 0.219608 0.22352900000000001 0.22745099999999999 0.231373 0.235294 0.23921600000000001 0.24313699999999999 0.247059 0.25097999999999998 0.25490200000000002 0.258824 0.26274500000000001 0.26666699999999999 0.270588 0.27450999999999998 0.27843099999999998 0.28235300000000002 0.286275 0.29019600000000001 0.29411799999999999 0.298039 0.30196099999999998 0.30588199999999999 0.30980400000000002 0.31372499999999998 0.31764700000000001 0.32156899999999999 0.32549 0.32941199999999998 0.33333299999999999 0.33725500000000003 0.34117599999999998 0.34509800000000002 0.34902 0.352941 0.35686299999999999 0.36078399999999999 0.36470599999999997 0.36862699999999998 0.37254900000000002 0.376471 0.38039200000000001 0.38431399999999999 0.388235 0.39215699999999998 0.39607799999999999 0.40000000000000002 0.403922 0.40784300000000001 0.41176499999999999 0.415686 0.41960799999999998 0.42352899999999999 0.42745100000000003 0.43137300000000001 0.43529400000000001 0.439216 0.443137 0.44705899999999998 0.45097999999999999 0.45490199999999997 0.45882400000000001 0.46274500000000002 0.466667 0.47058800000000001 0.47450999999999999 0.478431 0.48235299999999998 0.48627500000000001 0.49019600000000002 0.494118 0.49803900000000001 0.50196099999999999 0.50588200000000005 0.50980400000000003 0.51372499999999999 0.51764699999999997 0.52156899999999995 0.52549000000000001 0.52941199999999999 0.53333299999999995 0.53725500000000004 0.54117599999999999 0.54509799999999997 0.54901999999999995 0.55294100000000002 0.556863 0.56078399999999995 0.56470600000000004 0.56862699999999999 0.57254899999999997 0.57647099999999996 0.58039200000000002 0.584314 0.58823499999999995 0.59215700000000004 0.596078 0.59999999999999998 0.60392199999999996 0.60784300000000002 0.611765 0.61568599999999996 0.61960800000000005 0.623529 0.62745099999999998 0.63137299999999996 0.63529400000000003 0.63921600000000001 0.64313699999999996 0.64705900000000005 0.65098 0.65490199999999998 0.65882399999999997 0.66274500000000003 0.66666700000000001 0.67058799999999996 0.67451000000000005 0.67843100000000001 0.68235299999999999 0.68627499999999997 0.69019600000000003 0.69411800000000001 0.69803899999999997 0.70196099999999995 0.70588200000000001 0.70980399999999999 0.71372500000000005 0.71764700000000003 0.72156900000000002 0.72548999999999997 0.72941199999999995 0.73333300000000001 0.73725499999999999 0.74117599999999995 0.74509800000000004 0.74902000000000002 0.75294099999999997 0.75686299999999995 0.76078400000000002 0.764706 0.76862699999999995 0.77254900000000004 0.77647100000000002 0.78039199999999997 0.78431399999999996 0.78823500000000002 0.792157 0.79607799999999995 0.80000000000000004 0.80392200000000003 0.80784299999999998 0.81176499999999996 0.81568600000000002 0.819608 0.82352899999999996 0.82745100000000005 0.83137300000000003 0.83529399999999998 0.83921599999999996 0.84313700000000003 0.84705900000000001 0.85097999999999996 0.85490200000000005 0.85882400000000003 0.86274499999999998 0.86666699999999997 0.87058800000000003 0.87451000000000001 0.87843099999999996 0.88235300000000005 0.88627500000000003 0.89019599999999999 0.89411799999999997 0.89803900000000003 0.90196100000000001 0.90588199999999997 0.90980399999999995 0.91372500000000001 0.91764699999999999 0.92156899999999997 0.92549000000000003 0.92941200000000002 0.93333299999999997 0.93725499999999995 0.94117600000000001 0.94509799999999999 0.94901999999999997 0.95294100000000004 0.95686300000000002 0.96078399999999997 0.96470599999999995 0.96862700000000002 0.972549 0.97647099999999998 0.98039200000000004 0.98431400000000002 0.98823499999999997 0.99215699999999996 0.99607800000000002 1))) +(GimpDeviceInfo "Microsoft Microsoft® 2.4GHz Transceiver v8.0 Consumer Control" + (name "Microsoft Microsoft® 2.4GHz Transceiver v8.0 Consumer Control") + (tool-options "GimpCropOptions" + (tool "gimp-crop-tool")) + (use-fg-bg no) + (use-brush no) + (use-dynamics no) + (use-mypaint-brush no) + (use-gradient no) + (use-pattern no) + (use-palette no) + (use-font no) + (mode disabled) + (axes 4 x y pressure xtilt) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 0) + (point-types 0) + (n-samples 256) + (samples 256 0 0.0039220000000000001 0.0078429999999999993 0.011764999999999999 0.015685999999999999 0.019608 0.023529000000000001 0.027451 0.031372999999999998 0.035293999999999999 0.039216000000000001 0.043137000000000002 0.047058999999999997 0.050979999999999998 0.054901999999999999 0.058824000000000001 0.062744999999999995 0.066667000000000004 0.070587999999999998 0.074510000000000007 0.078431000000000001 0.082352999999999996 0.086275000000000004 0.090195999999999998 0.094117999999999993 0.098039000000000001 0.101961 0.105882 0.109804 0.11372500000000001 0.117647 0.121569 0.12548999999999999 0.129412 0.13333300000000001 0.13725499999999999 0.141176 0.145098 0.14902000000000001 0.15294099999999999 0.156863 0.16078400000000001 0.16470599999999999 0.168627 0.17254900000000001 0.17647099999999999 0.180392 0.18431400000000001 0.18823500000000001 0.19215699999999999 0.196078 0.20000000000000001 0.20392199999999999 0.207843 0.21176500000000001 0.21568599999999999 0.219608 0.22352900000000001 0.22745099999999999 0.231373 0.235294 0.23921600000000001 0.24313699999999999 0.247059 0.25097999999999998 0.25490200000000002 0.258824 0.26274500000000001 0.26666699999999999 0.270588 0.27450999999999998 0.27843099999999998 0.28235300000000002 0.286275 0.29019600000000001 0.29411799999999999 0.298039 0.30196099999999998 0.30588199999999999 0.30980400000000002 0.31372499999999998 0.31764700000000001 0.32156899999999999 0.32549 0.32941199999999998 0.33333299999999999 0.33725500000000003 0.34117599999999998 0.34509800000000002 0.34902 0.352941 0.35686299999999999 0.36078399999999999 0.36470599999999997 0.36862699999999998 0.37254900000000002 0.376471 0.38039200000000001 0.38431399999999999 0.388235 0.39215699999999998 0.39607799999999999 0.40000000000000002 0.403922 0.40784300000000001 0.41176499999999999 0.415686 0.41960799999999998 0.42352899999999999 0.42745100000000003 0.43137300000000001 0.43529400000000001 0.439216 0.443137 0.44705899999999998 0.45097999999999999 0.45490199999999997 0.45882400000000001 0.46274500000000002 0.466667 0.47058800000000001 0.47450999999999999 0.478431 0.48235299999999998 0.48627500000000001 0.49019600000000002 0.494118 0.49803900000000001 0.50196099999999999 0.50588200000000005 0.50980400000000003 0.51372499999999999 0.51764699999999997 0.52156899999999995 0.52549000000000001 0.52941199999999999 0.53333299999999995 0.53725500000000004 0.54117599999999999 0.54509799999999997 0.54901999999999995 0.55294100000000002 0.556863 0.56078399999999995 0.56470600000000004 0.56862699999999999 0.57254899999999997 0.57647099999999996 0.58039200000000002 0.584314 0.58823499999999995 0.59215700000000004 0.596078 0.59999999999999998 0.60392199999999996 0.60784300000000002 0.611765 0.61568599999999996 0.61960800000000005 0.623529 0.62745099999999998 0.63137299999999996 0.63529400000000003 0.63921600000000001 0.64313699999999996 0.64705900000000005 0.65098 0.65490199999999998 0.65882399999999997 0.66274500000000003 0.66666700000000001 0.67058799999999996 0.67451000000000005 0.67843100000000001 0.68235299999999999 0.68627499999999997 0.69019600000000003 0.69411800000000001 0.69803899999999997 0.70196099999999995 0.70588200000000001 0.70980399999999999 0.71372500000000005 0.71764700000000003 0.72156900000000002 0.72548999999999997 0.72941199999999995 0.73333300000000001 0.73725499999999999 0.74117599999999995 0.74509800000000004 0.74902000000000002 0.75294099999999997 0.75686299999999995 0.76078400000000002 0.764706 0.76862699999999995 0.77254900000000004 0.77647100000000002 0.78039199999999997 0.78431399999999996 0.78823500000000002 0.792157 0.79607799999999995 0.80000000000000004 0.80392200000000003 0.80784299999999998 0.81176499999999996 0.81568600000000002 0.819608 0.82352899999999996 0.82745100000000005 0.83137300000000003 0.83529399999999998 0.83921599999999996 0.84313700000000003 0.84705900000000001 0.85097999999999996 0.85490200000000005 0.85882400000000003 0.86274499999999998 0.86666699999999997 0.87058800000000003 0.87451000000000001 0.87843099999999996 0.88235300000000005 0.88627500000000003 0.89019599999999999 0.89411799999999997 0.89803900000000003 0.90196100000000001 0.90588199999999997 0.90980399999999995 0.91372500000000001 0.91764699999999999 0.92156899999999997 0.92549000000000003 0.92941200000000002 0.93333299999999997 0.93725499999999995 0.94117600000000001 0.94509799999999999 0.94901999999999997 0.95294100000000004 0.95686300000000002 0.96078399999999997 0.96470599999999995 0.96862700000000002 0.972549 0.97647099999999998 0.98039200000000004 0.98431400000000002 0.98823499999999997 0.99215699999999996 0.99607800000000002 1))) +(GimpDeviceInfo "Microsoft Microsoft® 2.4GHz Transceiver v8.0 Mouse" + (icon-name "gimp-cursor") + (name "Microsoft Microsoft® 2.4GHz Transceiver v8.0 Mouse") + (tool-options "GimpCropOptions" + (tool "gimp-crop-tool")) + (use-fg-bg no) + (use-brush no) + (use-dynamics no) + (use-mypaint-brush no) + (use-gradient no) + (use-pattern no) + (use-palette no) + (use-font no) + (mode disabled) + (axes 4 x y pressure xtilt) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 0) + (point-types 0) + (n-samples 256) + (samples 256 0 0.0039220000000000001 0.0078429999999999993 0.011764999999999999 0.015685999999999999 0.019608 0.023529000000000001 0.027451 0.031372999999999998 0.035293999999999999 0.039216000000000001 0.043137000000000002 0.047058999999999997 0.050979999999999998 0.054901999999999999 0.058824000000000001 0.062744999999999995 0.066667000000000004 0.070587999999999998 0.074510000000000007 0.078431000000000001 0.082352999999999996 0.086275000000000004 0.090195999999999998 0.094117999999999993 0.098039000000000001 0.101961 0.105882 0.109804 0.11372500000000001 0.117647 0.121569 0.12548999999999999 0.129412 0.13333300000000001 0.13725499999999999 0.141176 0.145098 0.14902000000000001 0.15294099999999999 0.156863 0.16078400000000001 0.16470599999999999 0.168627 0.17254900000000001 0.17647099999999999 0.180392 0.18431400000000001 0.18823500000000001 0.19215699999999999 0.196078 0.20000000000000001 0.20392199999999999 0.207843 0.21176500000000001 0.21568599999999999 0.219608 0.22352900000000001 0.22745099999999999 0.231373 0.235294 0.23921600000000001 0.24313699999999999 0.247059 0.25097999999999998 0.25490200000000002 0.258824 0.26274500000000001 0.26666699999999999 0.270588 0.27450999999999998 0.27843099999999998 0.28235300000000002 0.286275 0.29019600000000001 0.29411799999999999 0.298039 0.30196099999999998 0.30588199999999999 0.30980400000000002 0.31372499999999998 0.31764700000000001 0.32156899999999999 0.32549 0.32941199999999998 0.33333299999999999 0.33725500000000003 0.34117599999999998 0.34509800000000002 0.34902 0.352941 0.35686299999999999 0.36078399999999999 0.36470599999999997 0.36862699999999998 0.37254900000000002 0.376471 0.38039200000000001 0.38431399999999999 0.388235 0.39215699999999998 0.39607799999999999 0.40000000000000002 0.403922 0.40784300000000001 0.41176499999999999 0.415686 0.41960799999999998 0.42352899999999999 0.42745100000000003 0.43137300000000001 0.43529400000000001 0.439216 0.443137 0.44705899999999998 0.45097999999999999 0.45490199999999997 0.45882400000000001 0.46274500000000002 0.466667 0.47058800000000001 0.47450999999999999 0.478431 0.48235299999999998 0.48627500000000001 0.49019600000000002 0.494118 0.49803900000000001 0.50196099999999999 0.50588200000000005 0.50980400000000003 0.51372499999999999 0.51764699999999997 0.52156899999999995 0.52549000000000001 0.52941199999999999 0.53333299999999995 0.53725500000000004 0.54117599999999999 0.54509799999999997 0.54901999999999995 0.55294100000000002 0.556863 0.56078399999999995 0.56470600000000004 0.56862699999999999 0.57254899999999997 0.57647099999999996 0.58039200000000002 0.584314 0.58823499999999995 0.59215700000000004 0.596078 0.59999999999999998 0.60392199999999996 0.60784300000000002 0.611765 0.61568599999999996 0.61960800000000005 0.623529 0.62745099999999998 0.63137299999999996 0.63529400000000003 0.63921600000000001 0.64313699999999996 0.64705900000000005 0.65098 0.65490199999999998 0.65882399999999997 0.66274500000000003 0.66666700000000001 0.67058799999999996 0.67451000000000005 0.67843100000000001 0.68235299999999999 0.68627499999999997 0.69019600000000003 0.69411800000000001 0.69803899999999997 0.70196099999999995 0.70588200000000001 0.70980399999999999 0.71372500000000005 0.71764700000000003 0.72156900000000002 0.72548999999999997 0.72941199999999995 0.73333300000000001 0.73725499999999999 0.74117599999999995 0.74509800000000004 0.74902000000000002 0.75294099999999997 0.75686299999999995 0.76078400000000002 0.764706 0.76862699999999995 0.77254900000000004 0.77647100000000002 0.78039199999999997 0.78431399999999996 0.78823500000000002 0.792157 0.79607799999999995 0.80000000000000004 0.80392200000000003 0.80784299999999998 0.81176499999999996 0.81568600000000002 0.819608 0.82352899999999996 0.82745100000000005 0.83137300000000003 0.83529399999999998 0.83921599999999996 0.84313700000000003 0.84705900000000001 0.85097999999999996 0.85490200000000005 0.85882400000000003 0.86274499999999998 0.86666699999999997 0.87058800000000003 0.87451000000000001 0.87843099999999996 0.88235300000000005 0.88627500000000003 0.89019599999999999 0.89411799999999997 0.89803900000000003 0.90196100000000001 0.90588199999999997 0.90980399999999995 0.91372500000000001 0.91764699999999999 0.92156899999999997 0.92549000000000003 0.92941200000000002 0.93333299999999997 0.93725499999999995 0.94117600000000001 0.94509799999999999 0.94901999999999997 0.95294100000000004 0.95686300000000002 0.96078399999999997 0.96470599999999995 0.96862700000000002 0.972549 0.97647099999999998 0.98039200000000004 0.98431400000000002 0.98823499999999997 0.99215699999999996 0.99607800000000002 1))) +(GimpDeviceInfo "Virtual core XTEST pointer" + (icon-name "gimp-cursor") + (name "Virtual core XTEST pointer") + (tool-options "GimpCropOptions" + (tool "gimp-crop-tool")) + (use-fg-bg no) + (use-brush no) + (use-dynamics no) + (use-mypaint-brush no) + (use-gradient no) + (use-pattern no) + (use-palette no) + (use-font no) + (mode disabled) + (axes 2 x y) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 0) + (point-types 0) + (n-samples 256) + (samples 256 0 0.0039220000000000001 0.0078429999999999993 0.011764999999999999 0.015685999999999999 0.019608 0.023529000000000001 0.027451 0.031372999999999998 0.035293999999999999 0.039216000000000001 0.043137000000000002 0.047058999999999997 0.050979999999999998 0.054901999999999999 0.058824000000000001 0.062744999999999995 0.066667000000000004 0.070587999999999998 0.074510000000000007 0.078431000000000001 0.082352999999999996 0.086275000000000004 0.090195999999999998 0.094117999999999993 0.098039000000000001 0.101961 0.105882 0.109804 0.11372500000000001 0.117647 0.121569 0.12548999999999999 0.129412 0.13333300000000001 0.13725499999999999 0.141176 0.145098 0.14902000000000001 0.15294099999999999 0.156863 0.16078400000000001 0.16470599999999999 0.168627 0.17254900000000001 0.17647099999999999 0.180392 0.18431400000000001 0.18823500000000001 0.19215699999999999 0.196078 0.20000000000000001 0.20392199999999999 0.207843 0.21176500000000001 0.21568599999999999 0.219608 0.22352900000000001 0.22745099999999999 0.231373 0.235294 0.23921600000000001 0.24313699999999999 0.247059 0.25097999999999998 0.25490200000000002 0.258824 0.26274500000000001 0.26666699999999999 0.270588 0.27450999999999998 0.27843099999999998 0.28235300000000002 0.286275 0.29019600000000001 0.29411799999999999 0.298039 0.30196099999999998 0.30588199999999999 0.30980400000000002 0.31372499999999998 0.31764700000000001 0.32156899999999999 0.32549 0.32941199999999998 0.33333299999999999 0.33725500000000003 0.34117599999999998 0.34509800000000002 0.34902 0.352941 0.35686299999999999 0.36078399999999999 0.36470599999999997 0.36862699999999998 0.37254900000000002 0.376471 0.38039200000000001 0.38431399999999999 0.388235 0.39215699999999998 0.39607799999999999 0.40000000000000002 0.403922 0.40784300000000001 0.41176499999999999 0.415686 0.41960799999999998 0.42352899999999999 0.42745100000000003 0.43137300000000001 0.43529400000000001 0.439216 0.443137 0.44705899999999998 0.45097999999999999 0.45490199999999997 0.45882400000000001 0.46274500000000002 0.466667 0.47058800000000001 0.47450999999999999 0.478431 0.48235299999999998 0.48627500000000001 0.49019600000000002 0.494118 0.49803900000000001 0.50196099999999999 0.50588200000000005 0.50980400000000003 0.51372499999999999 0.51764699999999997 0.52156899999999995 0.52549000000000001 0.52941199999999999 0.53333299999999995 0.53725500000000004 0.54117599999999999 0.54509799999999997 0.54901999999999995 0.55294100000000002 0.556863 0.56078399999999995 0.56470600000000004 0.56862699999999999 0.57254899999999997 0.57647099999999996 0.58039200000000002 0.584314 0.58823499999999995 0.59215700000000004 0.596078 0.59999999999999998 0.60392199999999996 0.60784300000000002 0.611765 0.61568599999999996 0.61960800000000005 0.623529 0.62745099999999998 0.63137299999999996 0.63529400000000003 0.63921600000000001 0.64313699999999996 0.64705900000000005 0.65098 0.65490199999999998 0.65882399999999997 0.66274500000000003 0.66666700000000001 0.67058799999999996 0.67451000000000005 0.67843100000000001 0.68235299999999999 0.68627499999999997 0.69019600000000003 0.69411800000000001 0.69803899999999997 0.70196099999999995 0.70588200000000001 0.70980399999999999 0.71372500000000005 0.71764700000000003 0.72156900000000002 0.72548999999999997 0.72941199999999995 0.73333300000000001 0.73725499999999999 0.74117599999999995 0.74509800000000004 0.74902000000000002 0.75294099999999997 0.75686299999999995 0.76078400000000002 0.764706 0.76862699999999995 0.77254900000000004 0.77647100000000002 0.78039199999999997 0.78431399999999996 0.78823500000000002 0.792157 0.79607799999999995 0.80000000000000004 0.80392200000000003 0.80784299999999998 0.81176499999999996 0.81568600000000002 0.819608 0.82352899999999996 0.82745100000000005 0.83137300000000003 0.83529399999999998 0.83921599999999996 0.84313700000000003 0.84705900000000001 0.85097999999999996 0.85490200000000005 0.85882400000000003 0.86274499999999998 0.86666699999999997 0.87058800000000003 0.87451000000000001 0.87843099999999996 0.88235300000000005 0.88627500000000003 0.89019599999999999 0.89411799999999997 0.89803900000000003 0.90196100000000001 0.90588199999999997 0.90980399999999995 0.91372500000000001 0.91764699999999999 0.92156899999999997 0.92549000000000003 0.92941200000000002 0.93333299999999997 0.93725499999999995 0.94117600000000001 0.94509799999999999 0.94901999999999997 0.95294100000000004 0.95686300000000002 0.96078399999999997 0.96470599999999995 0.96862700000000002 0.972549 0.97647099999999998 0.98039200000000004 0.98431400000000002 0.98823499999999997 0.99215699999999996 0.99607800000000002 1))) +(GimpDeviceInfo "HID 256c:006e Pad" + (name "HID 256c:006e Pad") + (tool-options "GimpVectorOptions" + (tool "gimp-vector-tool") + (foreground (color-rgb 0.45588200000000001 0.32474399999999998 0.11014599999999999)) + (background (color-rgb 0.94117600000000001 0.89485499999999996 0.84642700000000004)) + (brush "2. Hardness 100") + (dynamics "Dynamics Off") + (pattern "Pine") + (gradient "Custom") + (palette "Colour History")) + (use-fg-bg yes) + (use-brush yes) + (use-dynamics yes) + (use-mypaint-brush no) + (use-gradient yes) + (use-pattern yes) + (use-palette yes) + (use-font no) + (mode disabled) + (axes 7 x y pressure xtilt ytilt wheel ignore) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 18 0 0 0.12156862745098039 0.121569 0.24705882352941178 0.247059 0.37254901960784315 0.37254900000000002 0.49803921568627452 0.49803900000000001 0.62352941176470589 0.623529 0.74901960784313726 0.74902000000000002 0.87450980392156863 0.87451000000000001 1 1) + (point-types 9 smooth smooth smooth smooth smooth smooth smooth smooth smooth) + (n-samples 256) + (samples 256 0 0.0039215852486609087 0.0078431704685499454 0.011764755630895237 0.015686340706924911 0.019607925667867093 0.023529510484949914 0.027451095129401488 0.031372679572449977 0.035294263785323472 0.039215847739250104 0.043137431405458018 0.047059014755175328 0.050980597759630181 0.054902180390050674 0.058823762617664963 0.062745344413701165 0.066666925749387401 0.070588506595951783 0.074510086924622479 0.078431666706627601 0.082353245913195261 0.0862748245155536 0.090196402484930716 0.09411797979255479 0.098039556409653922 0.10196113230745622 0.10588270745718985 0.10980428183008289 0.11372585539736355 0.11764742813025986 0.121569 0.12549057087925503 0.12941214069475449 0.13333370949881415 0.13725527734374998 0.14117684428187777 0.14509841036551341 0.14901997564697267 0.15294154017857142 0.15686310401262554 0.16078466720145088 0.16470622979736327 0.16862779185267857 0.17254935341971261 0.17647091455078123 0.18039247529820032 0.1843140357142857 0.18823559585135324 0.19215715576171874 0.19607871549769809 0.20000027511160712 0.20392183465576172 0.20784339418247766 0.21176495374407087 0.21568651339285716 0.21960807318115233 0.22352963316127233 0.22745119338553291 0.23137275390625001 0.23529431477573939 0.23921587604631694 0.24313743777029856 0.247059 0.2509805625 0.25490212499999998 0.25882368750000001 0.26274524999999999 0.26666681250000002 0.27058837500000005 0.27450993750000002 0.2784315 0.28235306250000003 0.286274625 0.29019618750000009 0.29411775000000001 0.29803931250000004 0.30196087500000002 0.30588243749999999 0.30980400000000008 0.31372556250000005 0.31764712500000003 0.32156868750000001 0.32549024999999998 0.32941181250000007 0.33333337500000004 0.33725493750000002 0.34117650000000005 0.34509806250000002 0.34901962500000006 0.35294118750000009 0.35686275000000001 0.36078431250000004 0.36470587500000001 0.36862743750000004 0.37254900000000002 0.37647056250000011 0.38039212500000003 0.3843136875 0.38823524999999998 0.39215681250000006 0.39607837500000004 0.39999993750000001 0.40392149999999999 0.40784306249999996 0.411764625 0.41568618750000003 0.41960775 0.42352931250000003 0.42745087500000001 0.43137243749999998 0.43529400000000001 0.43921556249999999 0.44313712500000002 0.4470586875 0.45098025000000003 0.45490181249999995 0.45882337499999998 0.46274493750000001 0.46666650000000004 0.47058806249999996 0.47450962499999999 0.47843118749999997 0.48235275 0.48627431250000008 0.490195875 0.49411743749999998 0.49803900000000001 0.50196056202697747 0.50588212316894532 0.50980368351745609 0.51372524316406254 0.51764680220031745 0.52156836071777346 0.52548991880798346 0.52941147656249998 0.53333303407287602 0.53725459143066401 0.54117614872741693 0.54509770605468755 0.5490192635040283 0.55294082116699228 0.55686237913513181 0.5607839375 0.56470549635314937 0.56862705578613282 0.57254861589050299 0.57647017675781254 0.58039173847961423 0.58431330114746094 0.58823486485290521 0.59215642968749993 0.59607799574279785 0.59999956311035152 0.60392113188171392 0.60784270214843761 0.61176427400207511 0.61568584753417965 0.61960742283630366 0.623529 0.62745057955932615 0.63137216186523437 0.63529374673461914 0.63921533398437502 0.6431369234313965 0.64705851489257804 0.65098010818481455 0.65490170312499996 0.65882329953002938 0.66274489721679697 0.66666649600219718 0.67058809570312505 0.6745096961364746 0.67843129711914063 0.68235289846801761 0.6862744999999999 0.69019610153198241 0.69411770288085939 0.69803930386352531 0.70196090429687497 0.70588250399780272 0.70980410278320305 0.71372570046997064 0.71764729687500006 0.72156889181518546 0.72549048510742187 0.72941207656860341 0.73333366601562511 0.73725525326538066 0.74117683813476565 0.74509842044067387 0.74902000000000002 0.75294157716369636 0.75686315246582037 0.76078472599792468 0.76470629785156263 0.76862786811828621 0.77254943688964839 0.77647100425720217 0.78039257031250009 0.78431413514709458 0.78823569885253908 0.79215726152038568 0.79607882324218737 0.80000038410949714 0.80392194421386709 0.80784350364685065 0.81176506250000002 0.81568662086486809 0.81960817883300785 0.82352973649597161 0.82745129394531258 0.83137285127258309 0.8352944085693359 0.83921596592712411 0.84313752343750004 0.84705908119201667 0.85098063928222656 0.85490219779968257 0.85882375683593759 0.86274531648254404 0.8666668768310547 0.87058843797302243 0.87451000000000001 0.87843156249999998 0.88235312500000007 0.88627468750000016 0.89019625000000002 0.8941178125 0.89803937500000008 0.90196093750000006 0.90588250000000015 0.90980406250000001 0.9137256250000001 0.91764718750000007 0.92156875000000005 0.92549031250000002 0.929411875 0.93333343749999997 0.93725499999999995 0.94117656250000004 0.9450981249999999 0.94901968749999999 0.95294125000000007 0.95686281250000005 0.96078437500000002 0.9647059375 0.96862749999999997 0.97254906249999995 0.97647062499999993 0.98039218750000001 0.98431374999999999 0.98823531249999996 0.99215687500000005 0.99607843750000002 1))) +(GimpDeviceInfo "HID 256c:006e Pen Pen (0)" + (icon-name "gimp-tool-paintbrush") + (name "HID 256c:006e Pen Pen (0)") + (tool-options "GimpVectorOptions" + (tool "gimp-vector-tool") + (foreground (color-rgb 0.45588200000000001 0.32474399999999998 0.11014599999999999)) + (background (color-rgb 0.94117600000000001 0.89485499999999996 0.84642700000000004)) + (brush "2. Hardness 100") + (dynamics "Dynamics Off") + (pattern "Pine") + (gradient "Custom") + (palette "Colour History")) + (use-fg-bg yes) + (use-brush yes) + (use-dynamics yes) + (use-mypaint-brush no) + (use-gradient yes) + (use-pattern yes) + (use-palette yes) + (use-font no) + (mode disabled) + (axes 3 x y pressure) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 0) + (point-types 0) + (n-samples 256) + (samples 256 0 0.0039220000000000001 0.0078429999999999993 0.011764999999999999 0.015685999999999999 0.019608 0.023529000000000001 0.027451 0.031372999999999998 0.035293999999999999 0.039216000000000001 0.043137000000000002 0.047058999999999997 0.050979999999999998 0.054901999999999999 0.058824000000000001 0.062744999999999995 0.066667000000000004 0.070587999999999998 0.074510000000000007 0.078431000000000001 0.082352999999999996 0.086275000000000004 0.090195999999999998 0.094117999999999993 0.098039000000000001 0.101961 0.105882 0.109804 0.11372500000000001 0.117647 0.121569 0.12548999999999999 0.129412 0.13333300000000001 0.13725499999999999 0.141176 0.145098 0.14902000000000001 0.15294099999999999 0.156863 0.16078400000000001 0.16470599999999999 0.168627 0.17254900000000001 0.17647099999999999 0.180392 0.18431400000000001 0.18823500000000001 0.19215699999999999 0.196078 0.20000000000000001 0.20392199999999999 0.207843 0.21176500000000001 0.21568599999999999 0.219608 0.22352900000000001 0.22745099999999999 0.231373 0.235294 0.23921600000000001 0.24313699999999999 0.247059 0.25097999999999998 0.25490200000000002 0.258824 0.26274500000000001 0.26666699999999999 0.270588 0.27450999999999998 0.27843099999999998 0.28235300000000002 0.286275 0.29019600000000001 0.29411799999999999 0.298039 0.30196099999999998 0.30588199999999999 0.30980400000000002 0.31372499999999998 0.31764700000000001 0.32156899999999999 0.32549 0.32941199999999998 0.33333299999999999 0.33725500000000003 0.34117599999999998 0.34509800000000002 0.34902 0.352941 0.35686299999999999 0.36078399999999999 0.36470599999999997 0.36862699999999998 0.37254900000000002 0.376471 0.38039200000000001 0.38431399999999999 0.388235 0.39215699999999998 0.39607799999999999 0.40000000000000002 0.403922 0.40784300000000001 0.41176499999999999 0.415686 0.41960799999999998 0.42352899999999999 0.42745100000000003 0.43137300000000001 0.43529400000000001 0.439216 0.443137 0.44705899999999998 0.45097999999999999 0.45490199999999997 0.45882400000000001 0.46274500000000002 0.466667 0.47058800000000001 0.47450999999999999 0.478431 0.48235299999999998 0.48627500000000001 0.49019600000000002 0.494118 0.49803900000000001 0.50196099999999999 0.50588200000000005 0.50980400000000003 0.51372499999999999 0.51764699999999997 0.52156899999999995 0.52549000000000001 0.52941199999999999 0.53333299999999995 0.53725500000000004 0.54117599999999999 0.54509799999999997 0.54901999999999995 0.55294100000000002 0.556863 0.56078399999999995 0.56470600000000004 0.56862699999999999 0.57254899999999997 0.57647099999999996 0.58039200000000002 0.584314 0.58823499999999995 0.59215700000000004 0.596078 0.59999999999999998 0.60392199999999996 0.60784300000000002 0.611765 0.61568599999999996 0.61960800000000005 0.623529 0.62745099999999998 0.63137299999999996 0.63529400000000003 0.63921600000000001 0.64313699999999996 0.64705900000000005 0.65098 0.65490199999999998 0.65882399999999997 0.66274500000000003 0.66666700000000001 0.67058799999999996 0.67451000000000005 0.67843100000000001 0.68235299999999999 0.68627499999999997 0.69019600000000003 0.69411800000000001 0.69803899999999997 0.70196099999999995 0.70588200000000001 0.70980399999999999 0.71372500000000005 0.71764700000000003 0.72156900000000002 0.72548999999999997 0.72941199999999995 0.73333300000000001 0.73725499999999999 0.74117599999999995 0.74509800000000004 0.74902000000000002 0.75294099999999997 0.75686299999999995 0.76078400000000002 0.764706 0.76862699999999995 0.77254900000000004 0.77647100000000002 0.78039199999999997 0.78431399999999996 0.78823500000000002 0.792157 0.79607799999999995 0.80000000000000004 0.80392200000000003 0.80784299999999998 0.81176499999999996 0.81568600000000002 0.819608 0.82352899999999996 0.82745100000000005 0.83137300000000003 0.83529399999999998 0.83921599999999996 0.84313700000000003 0.84705900000000001 0.85097999999999996 0.85490200000000005 0.85882400000000003 0.86274499999999998 0.86666699999999997 0.87058800000000003 0.87451000000000001 0.87843099999999996 0.88235300000000005 0.88627500000000003 0.89019599999999999 0.89411799999999997 0.89803900000000003 0.90196100000000001 0.90588199999999997 0.90980399999999995 0.91372500000000001 0.91764699999999999 0.92156899999999997 0.92549000000000003 0.92941200000000002 0.93333299999999997 0.93725499999999995 0.94117600000000001 0.94509799999999999 0.94901999999999997 0.95294100000000004 0.95686300000000002 0.96078399999999997 0.96470599999999995 0.96862700000000002 0.972549 0.97647099999999998 0.98039200000000004 0.98431400000000002 0.98823499999999997 0.99215699999999996 0.99607800000000002 1))) + +# end of devicerc diff --git a/2.10/dockrc b/2.10/dockrc new file mode 100644 index 0000000..bb1944b --- /dev/null +++ b/2.10/dockrc @@ -0,0 +1,4 @@ +# recently closed docks + + +# end of recently closed docks diff --git a/2.10/filters/GimpBrightnessContrastConfig.settings b/2.10/filters/GimpBrightnessContrastConfig.settings new file mode 100644 index 0000000..b2a565d --- /dev/null +++ b/2.10/filters/GimpBrightnessContrastConfig.settings @@ -0,0 +1,20 @@ +# settings + +(GimpBrightnessContrastConfig "2020-03-25 14:56:38" + (time 1585148198) + (brightness -0.54330708661417326) + (contrast 0)) +(GimpBrightnessContrastConfig "2020-02-10 10:50:59" + (time 1581331859) + (brightness -0.29921259842519687) + (contrast 0.28346456692913385)) +(GimpBrightnessContrastConfig "2019-11-16 15:35:22" + (time 1573918522) + (brightness -0.12598425196850394) + (contrast 0.10236220472440945)) +(GimpBrightnessContrastConfig "2019-11-01 10:52:29" + (time 1572605549) + (brightness -0.25984299999999999) + (contrast 0.094488000000000003)) + +# end of settings diff --git a/2.10/filters/GimpCurvesConfig.settings b/2.10/filters/GimpCurvesConfig.settings new file mode 100644 index 0000000..31953ce --- /dev/null +++ b/2.10/filters/GimpCurvesConfig.settings @@ -0,0 +1,80 @@ +# settings + +(GimpCurvesConfig "2020-04-10 22:07:11" + (time 1586552831) + (linear no) + (channel value) + (curve + (curve-type smooth) + (points 8 0 0 0.16374269005847952 0.1875 0.71345029239766078 0.67578125 1 1) + (point-types 4 smooth smooth smooth smooth) + (n-samples 256) + (samples 256 0 0.00487833875320138 0.0097553421546921759 0.014629674852761815 0.019500001495699699 0.024364986731795255 0.029223295209337908 0.034073591576617053 0.038914540481922139 0.043744806573542544 0.048563054499767722 0.053367948908887089 0.058158154449190036 0.062932335768966022 0.067689157516504395 0.072427284340094641 0.077145380888026166 0.081842111808588344 0.086516141750070635 0.091166135360762457 0.095790757288953199 0.10038867218293231 0.1049585446909892 0.10949903946141326 0.11400882114249394 0.11848655438252065 0.12293090382978281 0.12734053413256979 0.1317141099391711 0.13605029589787604 0.14034775665697419 0.14460515686475481 0.14882116116950739 0.15299443421952139 0.15712364066308609 0.161207445148491 0.16524451232402559 0.16923350683797919 0.17317309333864125 0.17706193647430118 0.18089870089324839 0.18468205124377235 0.1875 0.19120891492405839 0.19490674121717619 0.19859364925623474 0.20226980941811559 0.20593539207970007 0.20959056761786982 0.2132355064095062 0.21687037883149066 0.2204953552607046 0.22411060607402955 0.22771630164834711 0.23131261236053849 0.2348997085874853 0.2384777607060688 0.24204693909317079 0.24560741412567244 0.24915935618045532 0.25270293563440077 0.25623832286439047 0.25976568824730578 0.2632852021600281 0.2667970349794388 0.2703013570824197 0.27379833884585181 0.27728815064661683 0.2807709628615962 0.28424694586767141 0.2877162700417239 0.29117910576063505 0.29463562340128635 0.2980859933405593 0.30153038595533532 0.30496897162249581 0.30840192071892236 0.31182940362149636 0.31525159070709918 0.31866865235261249 0.32208075893491761 0.32548808083089603 0.32889078841742925 0.33228905207139847 0.33568304216968559 0.33907292908917164 0.34245888320673834 0.34584107489926702 0.34921967454363928 0.35259485251673656 0.35596677919544006 0.35933562495663157 0.36270156017719229 0.36606475523400384 0.36942538050394758 0.37278360636390506 0.37613960319075768 0.37949354136138697 0.38284559125267442 0.3861959232415012 0.38954470770474908 0.39289211501929938 0.39623831556203354 0.39958347970983304 0.40292777783957939 0.40627138032815402 0.40961445755243842 0.41295717988931402 0.41629971771566227 0.41964224140836454 0.42298492134430243 0.42632792790035734 0.42967143145341069 0.43301560238034403 0.43636061105803881 0.43970662786337644 0.44305382317323827 0.446402367364506 0.44975243081406091 0.45310418389878448 0.45645779699555827 0.45981344048126349 0.46317128473278196 0.46653150012699485 0.46989425704078375 0.47325972585103004 0.47662807693461529 0.47999948066842091 0.48337410742932818 0.48675212759421893 0.49013371153997426 0.49351902964347572 0.49690825228160496 0.5003015498312432 0.50369909266927215 0.50710105117257287 0.51050759571802717 0.51391889668251656 0.51733512444292218 0.52075644937612564 0.52418304185900844 0.52761507226845195 0.53105271098133777 0.53449612837454719 0.53794549482496179 0.54140098070946285 0.54486275640493209 0.54833099228825088 0.5518058587363005 0.55528752612596266 0.55877616483411863 0.56227194523765001 0.56577503771343807 0.56928561263836452 0.57280384038931054 0.57632989134315782 0.57986393587678775 0.58340614436708171 0.58695668719092131 0.59051573472518781 0.59408345734676282 0.59766002543252772 0.60124560935936411 0.60484037950415315 0.60844450624377666 0.61205815995511581 0.61568151101505209 0.61931472980046731 0.62295798668824243 0.62661145205525903 0.63027529627839896 0.63394968973454324 0.63763480280057339 0.6413308058533711 0.64503786926981754 0.64875616342679443 0.65248585870118303 0.65622712546986506 0.65998013410972156 0.66374505499763448 0.66752205851048463 0.67131131502515418 0.67578125 0.67960422140655574 0.68345257993356456 0.68732597332545964 0.69122404932667536 0.69514645568164501 0.699092840134803 0.70306285043058248 0.70705613431341796 0.71107233952774296 0.71511111381799131 0.71917210492859696 0.72325496060399352 0.72735932858861529 0.73148485662689544 0.73563119246326836 0.73979798384216788 0.7439848785080273 0.74819152420528101 0.7524175686783624 0.75666265967170587 0.76092644492974459 0.76520857219691307 0.76950868921764437 0.77382644373637299 0.77816148349753278 0.78251345624555724 0.78688200972488009 0.79126679167993519 0.79566744985515692 0.80008363199497856 0.8045149858438343 0.80896115914615774 0.81342179964638262 0.81789655508894321 0.82238507321827314 0.82688700177880614 0.83140198851497571 0.83592968117121624 0.84046972749196147 0.84502177522164523 0.84958547210470126 0.85416046588556327 0.85874640430866522 0.86334293511844129 0.86794970605932464 0.87256636487574957 0.87719255931214979 0.88182793711295915 0.88647214602261148 0.89112483378554064 0.89578564814618067 0.90045423684896475 0.9051302476383275 0.9098133282587022 0.91450312645452292 0.91919928997022349 0.92390146655023764 0.92860930393899932 0.93332244988094226 0.93804055212050053 0.94276325840210762 0.94749021647019771 0.95222107406920431 0.95695547894356148 0.96169307883770294 0.96643352149606265 0.97117645466307434 0.97592152608317195 0.98066838350078911 0.98541667466035987 0.99016604730631785 0.99491614918309712 1)) + (channel red) + (curve + (curve-type smooth) + (points 4 0 0 1 1) + (point-types 2 smooth smooth) + (n-samples 256) + (samples 256 0 0.0039215686274509803 0.0078431372549019607 0.011764705882352943 0.015686274509803921 0.019607843137254898 0.023529411764705879 0.027450980392156859 0.031372549019607843 0.035294117647058816 0.039215686274509803 0.043137254901960791 0.047058823529411764 0.050980392156862737 0.054901960784313725 0.058823529411764712 0.062745098039215685 0.066666666666666666 0.07058823529411766 0.07450980392156864 0.078431372549019621 0.082352941176470587 0.086274509803921567 0.090196078431372534 0.094117647058823528 0.098039215686274508 0.10196078431372547 0.10588235294117647 0.10980392156862745 0.11372549019607843 0.11764705882352938 0.1215686274509804 0.12549019607843137 0.12941176470588237 0.13333333333333336 0.13725490196078433 0.14117647058823532 0.14509803921568629 0.14901960784313723 0.15294117647058825 0.15686274509803921 0.16078431372549021 0.1647058823529412 0.16862745098039217 0.17254901960784311 0.17647058823529413 0.18039215686274507 0.18431372549019609 0.18823529411764706 0.19215686274509805 0.19607843137254902 0.20000000000000007 0.20392156862745101 0.20784313725490197 0.21176470588235291 0.21568627450980393 0.21960784313725493 0.22352941176470589 0.22745098039215686 0.23137254901960783 0.23529411764705882 0.23921568627450979 0.24313725490196075 0.24705882352941175 0.25098039215686274 0.25490196078431371 0.25882352941176473 0.26274509803921575 0.26666666666666672 0.27058823529411768 0.27450980392156865 0.27843137254901962 0.28235294117647064 0.2862745098039215 0.29019607843137252 0.29411764705882348 0.29803921568627445 0.30196078431372542 0.30588235294117649 0.30980392156862746 0.31372549019607843 0.31764705882352934 0.32156862745098053 0.32549019607843144 0.3294117647058824 0.33333333333333331 0.33725490196078434 0.3411764705882353 0.34509803921568633 0.34901960784313729 0.35294117647058826 0.35686274509803917 0.36078431372549019 0.3647058823529411 0.36862745098039224 0.37254901960784315 0.37647058823529411 0.38039215686274508 0.3843137254901961 0.38823529411764712 0.39215686274509809 0.39607843137254906 0.39999999999999997 0.40392156862745099 0.40784313725490196 0.41176470588235292 0.41568627450980383 0.41960784313725485 0.42352941176470582 0.42745098039215684 0.43137254901960786 0.43529411764705883 0.4392156862745098 0.44313725490196076 0.44705882352941184 0.45098039215686281 0.45490196078431377 0.45882352941176474 0.46274509803921571 0.46666666666666667 0.47058823529411764 0.47450980392156861 0.47843137254901957 0.48235294117647054 0.48627450980392145 0.49019607843137247 0.49411764705882355 0.49803921568627452 0.50196078431372548 0.50588235294117645 0.50980392156862742 0.51372549019607838 0.51764705882352946 0.52156862745098043 0.52549019607843139 0.52941176470588236 0.53333333333333333 0.53725490196078429 0.54117647058823526 0.54509803921568634 0.5490196078431373 0.55294117647058827 0.55686274509803924 0.5607843137254902 0.56470588235294117 0.56862745098039214 0.5725490196078431 0.57647058823529407 0.58039215686274515 0.58431372549019611 0.58823529411764708 0.59215686274509804 0.59607843137254901 0.59999999999999998 0.60392156862745094 0.60784313725490191 0.61176470588235299 0.61568627450980395 0.61960784313725492 0.62352941176470589 0.62745098039215685 0.63137254901960782 0.63529411764705879 0.63921568627450975 0.64313725490196083 0.6470588235294118 0.65098039215686287 0.65490196078431384 0.65882352941176481 0.66274509803921577 0.66666666666666663 0.6705882352941176 0.67450980392156867 0.67843137254901964 0.68235294117647061 0.68627450980392157 0.69019607843137254 0.69411764705882351 0.69803921568627447 0.70196078431372544 0.70588235294117663 0.70980392156862759 0.71372549019607845 0.71764705882352942 0.72156862745098038 0.72549019607843135 0.7294117647058822 0.73333333333333328 0.73725490196078436 0.74117647058823533 0.74509803921568629 0.74901960784313726 0.75294117647058822 0.75686274509803919 0.76078431372549016 0.76470588235294112 0.76862745098039231 0.77254901960784317 0.77647058823529425 0.78039215686274521 0.78431372549019607 0.78823529411764703 0.79215686274509811 0.79607843137254897 0.80000000000000004 0.80392156862745101 0.80784313725490198 0.81176470588235294 0.81568627450980391 0.81960784313725488 0.82352941176470584 0.82745098039215681 0.83137254901960789 0.83529411764705874 0.83921568627450982 0.84313725490196068 0.84705882352941175 0.85098039215686272 0.8549019607843138 0.85882352941176465 0.86274509803921573 0.8666666666666667 0.87058823529411766 0.87450980392156863 0.8784313725490196 0.88235294117647056 0.88627450980392164 0.8901960784313725 0.89411764705882357 0.89803921568627443 0.90196078431372551 0.90588235294117636 0.90980392156862755 0.91372549019607852 0.91764705882352937 0.92156862745098023 0.92549019607843142 0.92941176470588238 0.93333333333333335 0.93725490196078431 0.94117647058823528 0.94509803921568625 0.94901960784313721 0.95294117647058818 0.95686274509803926 0.96078431372549011 0.96470588235294119 0.96862745098039216 0.97254901960784312 0.97647058823529409 0.98039215686274506 0.98431372549019591 0.98823529411764721 0.99215686274509807 0.99607843137254914 1)) + (channel green) + (curve + (curve-type smooth) + (points 4 0 0 1 1) + (point-types 2 smooth smooth) + (n-samples 256) + (samples 256 0 0.0039215686274509803 0.0078431372549019607 0.011764705882352943 0.015686274509803921 0.019607843137254898 0.023529411764705879 0.027450980392156859 0.031372549019607843 0.035294117647058816 0.039215686274509803 0.043137254901960791 0.047058823529411764 0.050980392156862737 0.054901960784313725 0.058823529411764712 0.062745098039215685 0.066666666666666666 0.07058823529411766 0.07450980392156864 0.078431372549019621 0.082352941176470587 0.086274509803921567 0.090196078431372534 0.094117647058823528 0.098039215686274508 0.10196078431372547 0.10588235294117647 0.10980392156862745 0.11372549019607843 0.11764705882352938 0.1215686274509804 0.12549019607843137 0.12941176470588237 0.13333333333333336 0.13725490196078433 0.14117647058823532 0.14509803921568629 0.14901960784313723 0.15294117647058825 0.15686274509803921 0.16078431372549021 0.1647058823529412 0.16862745098039217 0.17254901960784311 0.17647058823529413 0.18039215686274507 0.18431372549019609 0.18823529411764706 0.19215686274509805 0.19607843137254902 0.20000000000000007 0.20392156862745101 0.20784313725490197 0.21176470588235291 0.21568627450980393 0.21960784313725493 0.22352941176470589 0.22745098039215686 0.23137254901960783 0.23529411764705882 0.23921568627450979 0.24313725490196075 0.24705882352941175 0.25098039215686274 0.25490196078431371 0.25882352941176473 0.26274509803921575 0.26666666666666672 0.27058823529411768 0.27450980392156865 0.27843137254901962 0.28235294117647064 0.2862745098039215 0.29019607843137252 0.29411764705882348 0.29803921568627445 0.30196078431372542 0.30588235294117649 0.30980392156862746 0.31372549019607843 0.31764705882352934 0.32156862745098053 0.32549019607843144 0.3294117647058824 0.33333333333333331 0.33725490196078434 0.3411764705882353 0.34509803921568633 0.34901960784313729 0.35294117647058826 0.35686274509803917 0.36078431372549019 0.3647058823529411 0.36862745098039224 0.37254901960784315 0.37647058823529411 0.38039215686274508 0.3843137254901961 0.38823529411764712 0.39215686274509809 0.39607843137254906 0.39999999999999997 0.40392156862745099 0.40784313725490196 0.41176470588235292 0.41568627450980383 0.41960784313725485 0.42352941176470582 0.42745098039215684 0.43137254901960786 0.43529411764705883 0.4392156862745098 0.44313725490196076 0.44705882352941184 0.45098039215686281 0.45490196078431377 0.45882352941176474 0.46274509803921571 0.46666666666666667 0.47058823529411764 0.47450980392156861 0.47843137254901957 0.48235294117647054 0.48627450980392145 0.49019607843137247 0.49411764705882355 0.49803921568627452 0.50196078431372548 0.50588235294117645 0.50980392156862742 0.51372549019607838 0.51764705882352946 0.52156862745098043 0.52549019607843139 0.52941176470588236 0.53333333333333333 0.53725490196078429 0.54117647058823526 0.54509803921568634 0.5490196078431373 0.55294117647058827 0.55686274509803924 0.5607843137254902 0.56470588235294117 0.56862745098039214 0.5725490196078431 0.57647058823529407 0.58039215686274515 0.58431372549019611 0.58823529411764708 0.59215686274509804 0.59607843137254901 0.59999999999999998 0.60392156862745094 0.60784313725490191 0.61176470588235299 0.61568627450980395 0.61960784313725492 0.62352941176470589 0.62745098039215685 0.63137254901960782 0.63529411764705879 0.63921568627450975 0.64313725490196083 0.6470588235294118 0.65098039215686287 0.65490196078431384 0.65882352941176481 0.66274509803921577 0.66666666666666663 0.6705882352941176 0.67450980392156867 0.67843137254901964 0.68235294117647061 0.68627450980392157 0.69019607843137254 0.69411764705882351 0.69803921568627447 0.70196078431372544 0.70588235294117663 0.70980392156862759 0.71372549019607845 0.71764705882352942 0.72156862745098038 0.72549019607843135 0.7294117647058822 0.73333333333333328 0.73725490196078436 0.74117647058823533 0.74509803921568629 0.74901960784313726 0.75294117647058822 0.75686274509803919 0.76078431372549016 0.76470588235294112 0.76862745098039231 0.77254901960784317 0.77647058823529425 0.78039215686274521 0.78431372549019607 0.78823529411764703 0.79215686274509811 0.79607843137254897 0.80000000000000004 0.80392156862745101 0.80784313725490198 0.81176470588235294 0.81568627450980391 0.81960784313725488 0.82352941176470584 0.82745098039215681 0.83137254901960789 0.83529411764705874 0.83921568627450982 0.84313725490196068 0.84705882352941175 0.85098039215686272 0.8549019607843138 0.85882352941176465 0.86274509803921573 0.8666666666666667 0.87058823529411766 0.87450980392156863 0.8784313725490196 0.88235294117647056 0.88627450980392164 0.8901960784313725 0.89411764705882357 0.89803921568627443 0.90196078431372551 0.90588235294117636 0.90980392156862755 0.91372549019607852 0.91764705882352937 0.92156862745098023 0.92549019607843142 0.92941176470588238 0.93333333333333335 0.93725490196078431 0.94117647058823528 0.94509803921568625 0.94901960784313721 0.95294117647058818 0.95686274509803926 0.96078431372549011 0.96470588235294119 0.96862745098039216 0.97254901960784312 0.97647058823529409 0.98039215686274506 0.98431372549019591 0.98823529411764721 0.99215686274509807 0.99607843137254914 1)) + (channel blue) + (curve + (curve-type smooth) + (points 4 0 0 1 1) + (point-types 2 smooth smooth) + (n-samples 256) + (samples 256 0 0.0039215686274509803 0.0078431372549019607 0.011764705882352943 0.015686274509803921 0.019607843137254898 0.023529411764705879 0.027450980392156859 0.031372549019607843 0.035294117647058816 0.039215686274509803 0.043137254901960791 0.047058823529411764 0.050980392156862737 0.054901960784313725 0.058823529411764712 0.062745098039215685 0.066666666666666666 0.07058823529411766 0.07450980392156864 0.078431372549019621 0.082352941176470587 0.086274509803921567 0.090196078431372534 0.094117647058823528 0.098039215686274508 0.10196078431372547 0.10588235294117647 0.10980392156862745 0.11372549019607843 0.11764705882352938 0.1215686274509804 0.12549019607843137 0.12941176470588237 0.13333333333333336 0.13725490196078433 0.14117647058823532 0.14509803921568629 0.14901960784313723 0.15294117647058825 0.15686274509803921 0.16078431372549021 0.1647058823529412 0.16862745098039217 0.17254901960784311 0.17647058823529413 0.18039215686274507 0.18431372549019609 0.18823529411764706 0.19215686274509805 0.19607843137254902 0.20000000000000007 0.20392156862745101 0.20784313725490197 0.21176470588235291 0.21568627450980393 0.21960784313725493 0.22352941176470589 0.22745098039215686 0.23137254901960783 0.23529411764705882 0.23921568627450979 0.24313725490196075 0.24705882352941175 0.25098039215686274 0.25490196078431371 0.25882352941176473 0.26274509803921575 0.26666666666666672 0.27058823529411768 0.27450980392156865 0.27843137254901962 0.28235294117647064 0.2862745098039215 0.29019607843137252 0.29411764705882348 0.29803921568627445 0.30196078431372542 0.30588235294117649 0.30980392156862746 0.31372549019607843 0.31764705882352934 0.32156862745098053 0.32549019607843144 0.3294117647058824 0.33333333333333331 0.33725490196078434 0.3411764705882353 0.34509803921568633 0.34901960784313729 0.35294117647058826 0.35686274509803917 0.36078431372549019 0.3647058823529411 0.36862745098039224 0.37254901960784315 0.37647058823529411 0.38039215686274508 0.3843137254901961 0.38823529411764712 0.39215686274509809 0.39607843137254906 0.39999999999999997 0.40392156862745099 0.40784313725490196 0.41176470588235292 0.41568627450980383 0.41960784313725485 0.42352941176470582 0.42745098039215684 0.43137254901960786 0.43529411764705883 0.4392156862745098 0.44313725490196076 0.44705882352941184 0.45098039215686281 0.45490196078431377 0.45882352941176474 0.46274509803921571 0.46666666666666667 0.47058823529411764 0.47450980392156861 0.47843137254901957 0.48235294117647054 0.48627450980392145 0.49019607843137247 0.49411764705882355 0.49803921568627452 0.50196078431372548 0.50588235294117645 0.50980392156862742 0.51372549019607838 0.51764705882352946 0.52156862745098043 0.52549019607843139 0.52941176470588236 0.53333333333333333 0.53725490196078429 0.54117647058823526 0.54509803921568634 0.5490196078431373 0.55294117647058827 0.55686274509803924 0.5607843137254902 0.56470588235294117 0.56862745098039214 0.5725490196078431 0.57647058823529407 0.58039215686274515 0.58431372549019611 0.58823529411764708 0.59215686274509804 0.59607843137254901 0.59999999999999998 0.60392156862745094 0.60784313725490191 0.61176470588235299 0.61568627450980395 0.61960784313725492 0.62352941176470589 0.62745098039215685 0.63137254901960782 0.63529411764705879 0.63921568627450975 0.64313725490196083 0.6470588235294118 0.65098039215686287 0.65490196078431384 0.65882352941176481 0.66274509803921577 0.66666666666666663 0.6705882352941176 0.67450980392156867 0.67843137254901964 0.68235294117647061 0.68627450980392157 0.69019607843137254 0.69411764705882351 0.69803921568627447 0.70196078431372544 0.70588235294117663 0.70980392156862759 0.71372549019607845 0.71764705882352942 0.72156862745098038 0.72549019607843135 0.7294117647058822 0.73333333333333328 0.73725490196078436 0.74117647058823533 0.74509803921568629 0.74901960784313726 0.75294117647058822 0.75686274509803919 0.76078431372549016 0.76470588235294112 0.76862745098039231 0.77254901960784317 0.77647058823529425 0.78039215686274521 0.78431372549019607 0.78823529411764703 0.79215686274509811 0.79607843137254897 0.80000000000000004 0.80392156862745101 0.80784313725490198 0.81176470588235294 0.81568627450980391 0.81960784313725488 0.82352941176470584 0.82745098039215681 0.83137254901960789 0.83529411764705874 0.83921568627450982 0.84313725490196068 0.84705882352941175 0.85098039215686272 0.8549019607843138 0.85882352941176465 0.86274509803921573 0.8666666666666667 0.87058823529411766 0.87450980392156863 0.8784313725490196 0.88235294117647056 0.88627450980392164 0.8901960784313725 0.89411764705882357 0.89803921568627443 0.90196078431372551 0.90588235294117636 0.90980392156862755 0.91372549019607852 0.91764705882352937 0.92156862745098023 0.92549019607843142 0.92941176470588238 0.93333333333333335 0.93725490196078431 0.94117647058823528 0.94509803921568625 0.94901960784313721 0.95294117647058818 0.95686274509803926 0.96078431372549011 0.96470588235294119 0.96862745098039216 0.97254901960784312 0.97647058823529409 0.98039215686274506 0.98431372549019591 0.98823529411764721 0.99215686274509807 0.99607843137254914 1)) + (channel alpha) + (curve + (curve-type smooth) + (points 4 0 0 1 1) + (point-types 2 smooth smooth) + (n-samples 256) + (samples 256 0 0.0039215686274509803 0.0078431372549019607 0.011764705882352943 0.015686274509803921 0.019607843137254898 0.023529411764705879 0.027450980392156859 0.031372549019607843 0.035294117647058816 0.039215686274509803 0.043137254901960791 0.047058823529411764 0.050980392156862737 0.054901960784313725 0.058823529411764712 0.062745098039215685 0.066666666666666666 0.07058823529411766 0.07450980392156864 0.078431372549019621 0.082352941176470587 0.086274509803921567 0.090196078431372534 0.094117647058823528 0.098039215686274508 0.10196078431372547 0.10588235294117647 0.10980392156862745 0.11372549019607843 0.11764705882352938 0.1215686274509804 0.12549019607843137 0.12941176470588237 0.13333333333333336 0.13725490196078433 0.14117647058823532 0.14509803921568629 0.14901960784313723 0.15294117647058825 0.15686274509803921 0.16078431372549021 0.1647058823529412 0.16862745098039217 0.17254901960784311 0.17647058823529413 0.18039215686274507 0.18431372549019609 0.18823529411764706 0.19215686274509805 0.19607843137254902 0.20000000000000007 0.20392156862745101 0.20784313725490197 0.21176470588235291 0.21568627450980393 0.21960784313725493 0.22352941176470589 0.22745098039215686 0.23137254901960783 0.23529411764705882 0.23921568627450979 0.24313725490196075 0.24705882352941175 0.25098039215686274 0.25490196078431371 0.25882352941176473 0.26274509803921575 0.26666666666666672 0.27058823529411768 0.27450980392156865 0.27843137254901962 0.28235294117647064 0.2862745098039215 0.29019607843137252 0.29411764705882348 0.29803921568627445 0.30196078431372542 0.30588235294117649 0.30980392156862746 0.31372549019607843 0.31764705882352934 0.32156862745098053 0.32549019607843144 0.3294117647058824 0.33333333333333331 0.33725490196078434 0.3411764705882353 0.34509803921568633 0.34901960784313729 0.35294117647058826 0.35686274509803917 0.36078431372549019 0.3647058823529411 0.36862745098039224 0.37254901960784315 0.37647058823529411 0.38039215686274508 0.3843137254901961 0.38823529411764712 0.39215686274509809 0.39607843137254906 0.39999999999999997 0.40392156862745099 0.40784313725490196 0.41176470588235292 0.41568627450980383 0.41960784313725485 0.42352941176470582 0.42745098039215684 0.43137254901960786 0.43529411764705883 0.4392156862745098 0.44313725490196076 0.44705882352941184 0.45098039215686281 0.45490196078431377 0.45882352941176474 0.46274509803921571 0.46666666666666667 0.47058823529411764 0.47450980392156861 0.47843137254901957 0.48235294117647054 0.48627450980392145 0.49019607843137247 0.49411764705882355 0.49803921568627452 0.50196078431372548 0.50588235294117645 0.50980392156862742 0.51372549019607838 0.51764705882352946 0.52156862745098043 0.52549019607843139 0.52941176470588236 0.53333333333333333 0.53725490196078429 0.54117647058823526 0.54509803921568634 0.5490196078431373 0.55294117647058827 0.55686274509803924 0.5607843137254902 0.56470588235294117 0.56862745098039214 0.5725490196078431 0.57647058823529407 0.58039215686274515 0.58431372549019611 0.58823529411764708 0.59215686274509804 0.59607843137254901 0.59999999999999998 0.60392156862745094 0.60784313725490191 0.61176470588235299 0.61568627450980395 0.61960784313725492 0.62352941176470589 0.62745098039215685 0.63137254901960782 0.63529411764705879 0.63921568627450975 0.64313725490196083 0.6470588235294118 0.65098039215686287 0.65490196078431384 0.65882352941176481 0.66274509803921577 0.66666666666666663 0.6705882352941176 0.67450980392156867 0.67843137254901964 0.68235294117647061 0.68627450980392157 0.69019607843137254 0.69411764705882351 0.69803921568627447 0.70196078431372544 0.70588235294117663 0.70980392156862759 0.71372549019607845 0.71764705882352942 0.72156862745098038 0.72549019607843135 0.7294117647058822 0.73333333333333328 0.73725490196078436 0.74117647058823533 0.74509803921568629 0.74901960784313726 0.75294117647058822 0.75686274509803919 0.76078431372549016 0.76470588235294112 0.76862745098039231 0.77254901960784317 0.77647058823529425 0.78039215686274521 0.78431372549019607 0.78823529411764703 0.79215686274509811 0.79607843137254897 0.80000000000000004 0.80392156862745101 0.80784313725490198 0.81176470588235294 0.81568627450980391 0.81960784313725488 0.82352941176470584 0.82745098039215681 0.83137254901960789 0.83529411764705874 0.83921568627450982 0.84313725490196068 0.84705882352941175 0.85098039215686272 0.8549019607843138 0.85882352941176465 0.86274509803921573 0.8666666666666667 0.87058823529411766 0.87450980392156863 0.8784313725490196 0.88235294117647056 0.88627450980392164 0.8901960784313725 0.89411764705882357 0.89803921568627443 0.90196078431372551 0.90588235294117636 0.90980392156862755 0.91372549019607852 0.91764705882352937 0.92156862745098023 0.92549019607843142 0.92941176470588238 0.93333333333333335 0.93725490196078431 0.94117647058823528 0.94509803921568625 0.94901960784313721 0.95294117647058818 0.95686274509803926 0.96078431372549011 0.96470588235294119 0.96862745098039216 0.97254901960784312 0.97647058823529409 0.98039215686274506 0.98431372549019591 0.98823529411764721 0.99215686274509807 0.99607843137254914 1))) +(GimpCurvesConfig "2020-02-16 19:25:45" + (time 1581881145) + (linear no) + (channel value) + (curve + (curve-type smooth) + (points 6 0 0 0.75730994152046782 0.06640625 1 1) + (point-types 3 smooth smooth smooth) + (n-samples 256) + (samples 256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0012670823100877915 0.0042039721551434192 0.0071912277497030927 0.010229136898049579 0.013317987404465749 0.016458067073234571 0.019649663708638881 0.022893065114961544 0.026188559096485375 0.029536433457493412 0.032936976002268442 0.036390474535093281 0.039897216860251022 0.043457490782024343 0.047071584104696182 0.050739784632549315 0.05446238016986682 0.058239658520931492 0.062071907490026119 0.06640625 0.070596959029680564 0.075320118830880495 0.080566984354189963 0.086328810550199267 0.092596852369498564 0.099362364762678138 0.10661660268032824 0.11435082107303904 0.12255627489140079 0.13122421908600376 0.14034590860743809 0.14991259840629412 0.15991554343316203 0.17034599863863206 0.18119521897329444 0.19245445938773939 0.20411497483255711 0.2161680202583379 0.22860485061567196 0.24141672085514956 0.25459488592736079 0.26813060078289602 0.2820151203723455 0.29623969964629943 0.31079559355534797 0.32567405705008134 0.34086634508108993 0.35636371259896388 0.37215741455429335 0.38823870589766868 0.40459884157968001 0.42122907655091768 0.43812066576197173 0.4552648641634327 0.47265292670589043 0.49027610833993551 0.50812566401615789 0.52619284868514815 0.54446891729749625 0.56294512480379244 0.581612726154627 0.60046297630058998 0.61948713019227197 0.63867644278026292 0.65802216901515331 0.67751556384753298 0.69714788222799262 0.71691037910712208 0.73679430943551183 0.75679092816375215 0.77689149024243287 0.79708725062214469 0.81736946425347734 0.83772938608702174 0.85815827107336751 0.87864737416310534 0.89918795030682508 0.91977125445511709 0.94038854155857166 0.96103106656777881 0.98169008443332917 1)) + (channel red) + (curve + (curve-type smooth) + (points 4 0 0 1 1) + (point-types 2 smooth smooth) + (n-samples 256) + (samples 256 0 0.0039215686274509803 0.0078431372549019607 0.011764705882352943 0.015686274509803921 0.019607843137254898 0.023529411764705879 0.027450980392156859 0.031372549019607843 0.035294117647058816 0.039215686274509803 0.043137254901960791 0.047058823529411764 0.050980392156862737 0.054901960784313725 0.058823529411764712 0.062745098039215685 0.066666666666666666 0.07058823529411766 0.07450980392156864 0.078431372549019621 0.082352941176470587 0.086274509803921567 0.090196078431372534 0.094117647058823528 0.098039215686274508 0.10196078431372547 0.10588235294117647 0.10980392156862745 0.11372549019607843 0.11764705882352938 0.1215686274509804 0.12549019607843137 0.12941176470588237 0.13333333333333336 0.13725490196078433 0.14117647058823532 0.14509803921568629 0.14901960784313723 0.15294117647058825 0.15686274509803921 0.16078431372549021 0.1647058823529412 0.16862745098039217 0.17254901960784311 0.17647058823529413 0.18039215686274507 0.18431372549019609 0.18823529411764706 0.19215686274509805 0.19607843137254902 0.20000000000000007 0.20392156862745101 0.20784313725490197 0.21176470588235291 0.21568627450980393 0.21960784313725493 0.22352941176470589 0.22745098039215686 0.23137254901960783 0.23529411764705882 0.23921568627450979 0.24313725490196075 0.24705882352941175 0.25098039215686274 0.25490196078431371 0.25882352941176473 0.26274509803921575 0.26666666666666672 0.27058823529411768 0.27450980392156865 0.27843137254901962 0.28235294117647064 0.2862745098039215 0.29019607843137252 0.29411764705882348 0.29803921568627445 0.30196078431372542 0.30588235294117649 0.30980392156862746 0.31372549019607843 0.31764705882352934 0.32156862745098053 0.32549019607843144 0.3294117647058824 0.33333333333333331 0.33725490196078434 0.3411764705882353 0.34509803921568633 0.34901960784313729 0.35294117647058826 0.35686274509803917 0.36078431372549019 0.3647058823529411 0.36862745098039224 0.37254901960784315 0.37647058823529411 0.38039215686274508 0.3843137254901961 0.38823529411764712 0.39215686274509809 0.39607843137254906 0.39999999999999997 0.40392156862745099 0.40784313725490196 0.41176470588235292 0.41568627450980383 0.41960784313725485 0.42352941176470582 0.42745098039215684 0.43137254901960786 0.43529411764705883 0.4392156862745098 0.44313725490196076 0.44705882352941184 0.45098039215686281 0.45490196078431377 0.45882352941176474 0.46274509803921571 0.46666666666666667 0.47058823529411764 0.47450980392156861 0.47843137254901957 0.48235294117647054 0.48627450980392145 0.49019607843137247 0.49411764705882355 0.49803921568627452 0.50196078431372548 0.50588235294117645 0.50980392156862742 0.51372549019607838 0.51764705882352946 0.52156862745098043 0.52549019607843139 0.52941176470588236 0.53333333333333333 0.53725490196078429 0.54117647058823526 0.54509803921568634 0.5490196078431373 0.55294117647058827 0.55686274509803924 0.5607843137254902 0.56470588235294117 0.56862745098039214 0.5725490196078431 0.57647058823529407 0.58039215686274515 0.58431372549019611 0.58823529411764708 0.59215686274509804 0.59607843137254901 0.59999999999999998 0.60392156862745094 0.60784313725490191 0.61176470588235299 0.61568627450980395 0.61960784313725492 0.62352941176470589 0.62745098039215685 0.63137254901960782 0.63529411764705879 0.63921568627450975 0.64313725490196083 0.6470588235294118 0.65098039215686287 0.65490196078431384 0.65882352941176481 0.66274509803921577 0.66666666666666663 0.6705882352941176 0.67450980392156867 0.67843137254901964 0.68235294117647061 0.68627450980392157 0.69019607843137254 0.69411764705882351 0.69803921568627447 0.70196078431372544 0.70588235294117663 0.70980392156862759 0.71372549019607845 0.71764705882352942 0.72156862745098038 0.72549019607843135 0.7294117647058822 0.73333333333333328 0.73725490196078436 0.74117647058823533 0.74509803921568629 0.74901960784313726 0.75294117647058822 0.75686274509803919 0.76078431372549016 0.76470588235294112 0.76862745098039231 0.77254901960784317 0.77647058823529425 0.78039215686274521 0.78431372549019607 0.78823529411764703 0.79215686274509811 0.79607843137254897 0.80000000000000004 0.80392156862745101 0.80784313725490198 0.81176470588235294 0.81568627450980391 0.81960784313725488 0.82352941176470584 0.82745098039215681 0.83137254901960789 0.83529411764705874 0.83921568627450982 0.84313725490196068 0.84705882352941175 0.85098039215686272 0.8549019607843138 0.85882352941176465 0.86274509803921573 0.8666666666666667 0.87058823529411766 0.87450980392156863 0.8784313725490196 0.88235294117647056 0.88627450980392164 0.8901960784313725 0.89411764705882357 0.89803921568627443 0.90196078431372551 0.90588235294117636 0.90980392156862755 0.91372549019607852 0.91764705882352937 0.92156862745098023 0.92549019607843142 0.92941176470588238 0.93333333333333335 0.93725490196078431 0.94117647058823528 0.94509803921568625 0.94901960784313721 0.95294117647058818 0.95686274509803926 0.96078431372549011 0.96470588235294119 0.96862745098039216 0.97254901960784312 0.97647058823529409 0.98039215686274506 0.98431372549019591 0.98823529411764721 0.99215686274509807 0.99607843137254914 1)) + (channel green) + (curve + (curve-type smooth) + (points 4 0 0 1 1) + (point-types 2 smooth smooth) + (n-samples 256) + (samples 256 0 0.0039215686274509803 0.0078431372549019607 0.011764705882352943 0.015686274509803921 0.019607843137254898 0.023529411764705879 0.027450980392156859 0.031372549019607843 0.035294117647058816 0.039215686274509803 0.043137254901960791 0.047058823529411764 0.050980392156862737 0.054901960784313725 0.058823529411764712 0.062745098039215685 0.066666666666666666 0.07058823529411766 0.07450980392156864 0.078431372549019621 0.082352941176470587 0.086274509803921567 0.090196078431372534 0.094117647058823528 0.098039215686274508 0.10196078431372547 0.10588235294117647 0.10980392156862745 0.11372549019607843 0.11764705882352938 0.1215686274509804 0.12549019607843137 0.12941176470588237 0.13333333333333336 0.13725490196078433 0.14117647058823532 0.14509803921568629 0.14901960784313723 0.15294117647058825 0.15686274509803921 0.16078431372549021 0.1647058823529412 0.16862745098039217 0.17254901960784311 0.17647058823529413 0.18039215686274507 0.18431372549019609 0.18823529411764706 0.19215686274509805 0.19607843137254902 0.20000000000000007 0.20392156862745101 0.20784313725490197 0.21176470588235291 0.21568627450980393 0.21960784313725493 0.22352941176470589 0.22745098039215686 0.23137254901960783 0.23529411764705882 0.23921568627450979 0.24313725490196075 0.24705882352941175 0.25098039215686274 0.25490196078431371 0.25882352941176473 0.26274509803921575 0.26666666666666672 0.27058823529411768 0.27450980392156865 0.27843137254901962 0.28235294117647064 0.2862745098039215 0.29019607843137252 0.29411764705882348 0.29803921568627445 0.30196078431372542 0.30588235294117649 0.30980392156862746 0.31372549019607843 0.31764705882352934 0.32156862745098053 0.32549019607843144 0.3294117647058824 0.33333333333333331 0.33725490196078434 0.3411764705882353 0.34509803921568633 0.34901960784313729 0.35294117647058826 0.35686274509803917 0.36078431372549019 0.3647058823529411 0.36862745098039224 0.37254901960784315 0.37647058823529411 0.38039215686274508 0.3843137254901961 0.38823529411764712 0.39215686274509809 0.39607843137254906 0.39999999999999997 0.40392156862745099 0.40784313725490196 0.41176470588235292 0.41568627450980383 0.41960784313725485 0.42352941176470582 0.42745098039215684 0.43137254901960786 0.43529411764705883 0.4392156862745098 0.44313725490196076 0.44705882352941184 0.45098039215686281 0.45490196078431377 0.45882352941176474 0.46274509803921571 0.46666666666666667 0.47058823529411764 0.47450980392156861 0.47843137254901957 0.48235294117647054 0.48627450980392145 0.49019607843137247 0.49411764705882355 0.49803921568627452 0.50196078431372548 0.50588235294117645 0.50980392156862742 0.51372549019607838 0.51764705882352946 0.52156862745098043 0.52549019607843139 0.52941176470588236 0.53333333333333333 0.53725490196078429 0.54117647058823526 0.54509803921568634 0.5490196078431373 0.55294117647058827 0.55686274509803924 0.5607843137254902 0.56470588235294117 0.56862745098039214 0.5725490196078431 0.57647058823529407 0.58039215686274515 0.58431372549019611 0.58823529411764708 0.59215686274509804 0.59607843137254901 0.59999999999999998 0.60392156862745094 0.60784313725490191 0.61176470588235299 0.61568627450980395 0.61960784313725492 0.62352941176470589 0.62745098039215685 0.63137254901960782 0.63529411764705879 0.63921568627450975 0.64313725490196083 0.6470588235294118 0.65098039215686287 0.65490196078431384 0.65882352941176481 0.66274509803921577 0.66666666666666663 0.6705882352941176 0.67450980392156867 0.67843137254901964 0.68235294117647061 0.68627450980392157 0.69019607843137254 0.69411764705882351 0.69803921568627447 0.70196078431372544 0.70588235294117663 0.70980392156862759 0.71372549019607845 0.71764705882352942 0.72156862745098038 0.72549019607843135 0.7294117647058822 0.73333333333333328 0.73725490196078436 0.74117647058823533 0.74509803921568629 0.74901960784313726 0.75294117647058822 0.75686274509803919 0.76078431372549016 0.76470588235294112 0.76862745098039231 0.77254901960784317 0.77647058823529425 0.78039215686274521 0.78431372549019607 0.78823529411764703 0.79215686274509811 0.79607843137254897 0.80000000000000004 0.80392156862745101 0.80784313725490198 0.81176470588235294 0.81568627450980391 0.81960784313725488 0.82352941176470584 0.82745098039215681 0.83137254901960789 0.83529411764705874 0.83921568627450982 0.84313725490196068 0.84705882352941175 0.85098039215686272 0.8549019607843138 0.85882352941176465 0.86274509803921573 0.8666666666666667 0.87058823529411766 0.87450980392156863 0.8784313725490196 0.88235294117647056 0.88627450980392164 0.8901960784313725 0.89411764705882357 0.89803921568627443 0.90196078431372551 0.90588235294117636 0.90980392156862755 0.91372549019607852 0.91764705882352937 0.92156862745098023 0.92549019607843142 0.92941176470588238 0.93333333333333335 0.93725490196078431 0.94117647058823528 0.94509803921568625 0.94901960784313721 0.95294117647058818 0.95686274509803926 0.96078431372549011 0.96470588235294119 0.96862745098039216 0.97254901960784312 0.97647058823529409 0.98039215686274506 0.98431372549019591 0.98823529411764721 0.99215686274509807 0.99607843137254914 1)) + (channel blue) + (curve + (curve-type smooth) + (points 4 0 0 1 1) + (point-types 2 smooth smooth) + (n-samples 256) + (samples 256 0 0.0039215686274509803 0.0078431372549019607 0.011764705882352943 0.015686274509803921 0.019607843137254898 0.023529411764705879 0.027450980392156859 0.031372549019607843 0.035294117647058816 0.039215686274509803 0.043137254901960791 0.047058823529411764 0.050980392156862737 0.054901960784313725 0.058823529411764712 0.062745098039215685 0.066666666666666666 0.07058823529411766 0.07450980392156864 0.078431372549019621 0.082352941176470587 0.086274509803921567 0.090196078431372534 0.094117647058823528 0.098039215686274508 0.10196078431372547 0.10588235294117647 0.10980392156862745 0.11372549019607843 0.11764705882352938 0.1215686274509804 0.12549019607843137 0.12941176470588237 0.13333333333333336 0.13725490196078433 0.14117647058823532 0.14509803921568629 0.14901960784313723 0.15294117647058825 0.15686274509803921 0.16078431372549021 0.1647058823529412 0.16862745098039217 0.17254901960784311 0.17647058823529413 0.18039215686274507 0.18431372549019609 0.18823529411764706 0.19215686274509805 0.19607843137254902 0.20000000000000007 0.20392156862745101 0.20784313725490197 0.21176470588235291 0.21568627450980393 0.21960784313725493 0.22352941176470589 0.22745098039215686 0.23137254901960783 0.23529411764705882 0.23921568627450979 0.24313725490196075 0.24705882352941175 0.25098039215686274 0.25490196078431371 0.25882352941176473 0.26274509803921575 0.26666666666666672 0.27058823529411768 0.27450980392156865 0.27843137254901962 0.28235294117647064 0.2862745098039215 0.29019607843137252 0.29411764705882348 0.29803921568627445 0.30196078431372542 0.30588235294117649 0.30980392156862746 0.31372549019607843 0.31764705882352934 0.32156862745098053 0.32549019607843144 0.3294117647058824 0.33333333333333331 0.33725490196078434 0.3411764705882353 0.34509803921568633 0.34901960784313729 0.35294117647058826 0.35686274509803917 0.36078431372549019 0.3647058823529411 0.36862745098039224 0.37254901960784315 0.37647058823529411 0.38039215686274508 0.3843137254901961 0.38823529411764712 0.39215686274509809 0.39607843137254906 0.39999999999999997 0.40392156862745099 0.40784313725490196 0.41176470588235292 0.41568627450980383 0.41960784313725485 0.42352941176470582 0.42745098039215684 0.43137254901960786 0.43529411764705883 0.4392156862745098 0.44313725490196076 0.44705882352941184 0.45098039215686281 0.45490196078431377 0.45882352941176474 0.46274509803921571 0.46666666666666667 0.47058823529411764 0.47450980392156861 0.47843137254901957 0.48235294117647054 0.48627450980392145 0.49019607843137247 0.49411764705882355 0.49803921568627452 0.50196078431372548 0.50588235294117645 0.50980392156862742 0.51372549019607838 0.51764705882352946 0.52156862745098043 0.52549019607843139 0.52941176470588236 0.53333333333333333 0.53725490196078429 0.54117647058823526 0.54509803921568634 0.5490196078431373 0.55294117647058827 0.55686274509803924 0.5607843137254902 0.56470588235294117 0.56862745098039214 0.5725490196078431 0.57647058823529407 0.58039215686274515 0.58431372549019611 0.58823529411764708 0.59215686274509804 0.59607843137254901 0.59999999999999998 0.60392156862745094 0.60784313725490191 0.61176470588235299 0.61568627450980395 0.61960784313725492 0.62352941176470589 0.62745098039215685 0.63137254901960782 0.63529411764705879 0.63921568627450975 0.64313725490196083 0.6470588235294118 0.65098039215686287 0.65490196078431384 0.65882352941176481 0.66274509803921577 0.66666666666666663 0.6705882352941176 0.67450980392156867 0.67843137254901964 0.68235294117647061 0.68627450980392157 0.69019607843137254 0.69411764705882351 0.69803921568627447 0.70196078431372544 0.70588235294117663 0.70980392156862759 0.71372549019607845 0.71764705882352942 0.72156862745098038 0.72549019607843135 0.7294117647058822 0.73333333333333328 0.73725490196078436 0.74117647058823533 0.74509803921568629 0.74901960784313726 0.75294117647058822 0.75686274509803919 0.76078431372549016 0.76470588235294112 0.76862745098039231 0.77254901960784317 0.77647058823529425 0.78039215686274521 0.78431372549019607 0.78823529411764703 0.79215686274509811 0.79607843137254897 0.80000000000000004 0.80392156862745101 0.80784313725490198 0.81176470588235294 0.81568627450980391 0.81960784313725488 0.82352941176470584 0.82745098039215681 0.83137254901960789 0.83529411764705874 0.83921568627450982 0.84313725490196068 0.84705882352941175 0.85098039215686272 0.8549019607843138 0.85882352941176465 0.86274509803921573 0.8666666666666667 0.87058823529411766 0.87450980392156863 0.8784313725490196 0.88235294117647056 0.88627450980392164 0.8901960784313725 0.89411764705882357 0.89803921568627443 0.90196078431372551 0.90588235294117636 0.90980392156862755 0.91372549019607852 0.91764705882352937 0.92156862745098023 0.92549019607843142 0.92941176470588238 0.93333333333333335 0.93725490196078431 0.94117647058823528 0.94509803921568625 0.94901960784313721 0.95294117647058818 0.95686274509803926 0.96078431372549011 0.96470588235294119 0.96862745098039216 0.97254901960784312 0.97647058823529409 0.98039215686274506 0.98431372549019591 0.98823529411764721 0.99215686274509807 0.99607843137254914 1)) + (channel alpha) + (curve + (curve-type smooth) + (points 4 0 0 1 1) + (point-types 2 smooth smooth) + (n-samples 256) + (samples 256 0 0.0039215686274509803 0.0078431372549019607 0.011764705882352943 0.015686274509803921 0.019607843137254898 0.023529411764705879 0.027450980392156859 0.031372549019607843 0.035294117647058816 0.039215686274509803 0.043137254901960791 0.047058823529411764 0.050980392156862737 0.054901960784313725 0.058823529411764712 0.062745098039215685 0.066666666666666666 0.07058823529411766 0.07450980392156864 0.078431372549019621 0.082352941176470587 0.086274509803921567 0.090196078431372534 0.094117647058823528 0.098039215686274508 0.10196078431372547 0.10588235294117647 0.10980392156862745 0.11372549019607843 0.11764705882352938 0.1215686274509804 0.12549019607843137 0.12941176470588237 0.13333333333333336 0.13725490196078433 0.14117647058823532 0.14509803921568629 0.14901960784313723 0.15294117647058825 0.15686274509803921 0.16078431372549021 0.1647058823529412 0.16862745098039217 0.17254901960784311 0.17647058823529413 0.18039215686274507 0.18431372549019609 0.18823529411764706 0.19215686274509805 0.19607843137254902 0.20000000000000007 0.20392156862745101 0.20784313725490197 0.21176470588235291 0.21568627450980393 0.21960784313725493 0.22352941176470589 0.22745098039215686 0.23137254901960783 0.23529411764705882 0.23921568627450979 0.24313725490196075 0.24705882352941175 0.25098039215686274 0.25490196078431371 0.25882352941176473 0.26274509803921575 0.26666666666666672 0.27058823529411768 0.27450980392156865 0.27843137254901962 0.28235294117647064 0.2862745098039215 0.29019607843137252 0.29411764705882348 0.29803921568627445 0.30196078431372542 0.30588235294117649 0.30980392156862746 0.31372549019607843 0.31764705882352934 0.32156862745098053 0.32549019607843144 0.3294117647058824 0.33333333333333331 0.33725490196078434 0.3411764705882353 0.34509803921568633 0.34901960784313729 0.35294117647058826 0.35686274509803917 0.36078431372549019 0.3647058823529411 0.36862745098039224 0.37254901960784315 0.37647058823529411 0.38039215686274508 0.3843137254901961 0.38823529411764712 0.39215686274509809 0.39607843137254906 0.39999999999999997 0.40392156862745099 0.40784313725490196 0.41176470588235292 0.41568627450980383 0.41960784313725485 0.42352941176470582 0.42745098039215684 0.43137254901960786 0.43529411764705883 0.4392156862745098 0.44313725490196076 0.44705882352941184 0.45098039215686281 0.45490196078431377 0.45882352941176474 0.46274509803921571 0.46666666666666667 0.47058823529411764 0.47450980392156861 0.47843137254901957 0.48235294117647054 0.48627450980392145 0.49019607843137247 0.49411764705882355 0.49803921568627452 0.50196078431372548 0.50588235294117645 0.50980392156862742 0.51372549019607838 0.51764705882352946 0.52156862745098043 0.52549019607843139 0.52941176470588236 0.53333333333333333 0.53725490196078429 0.54117647058823526 0.54509803921568634 0.5490196078431373 0.55294117647058827 0.55686274509803924 0.5607843137254902 0.56470588235294117 0.56862745098039214 0.5725490196078431 0.57647058823529407 0.58039215686274515 0.58431372549019611 0.58823529411764708 0.59215686274509804 0.59607843137254901 0.59999999999999998 0.60392156862745094 0.60784313725490191 0.61176470588235299 0.61568627450980395 0.61960784313725492 0.62352941176470589 0.62745098039215685 0.63137254901960782 0.63529411764705879 0.63921568627450975 0.64313725490196083 0.6470588235294118 0.65098039215686287 0.65490196078431384 0.65882352941176481 0.66274509803921577 0.66666666666666663 0.6705882352941176 0.67450980392156867 0.67843137254901964 0.68235294117647061 0.68627450980392157 0.69019607843137254 0.69411764705882351 0.69803921568627447 0.70196078431372544 0.70588235294117663 0.70980392156862759 0.71372549019607845 0.71764705882352942 0.72156862745098038 0.72549019607843135 0.7294117647058822 0.73333333333333328 0.73725490196078436 0.74117647058823533 0.74509803921568629 0.74901960784313726 0.75294117647058822 0.75686274509803919 0.76078431372549016 0.76470588235294112 0.76862745098039231 0.77254901960784317 0.77647058823529425 0.78039215686274521 0.78431372549019607 0.78823529411764703 0.79215686274509811 0.79607843137254897 0.80000000000000004 0.80392156862745101 0.80784313725490198 0.81176470588235294 0.81568627450980391 0.81960784313725488 0.82352941176470584 0.82745098039215681 0.83137254901960789 0.83529411764705874 0.83921568627450982 0.84313725490196068 0.84705882352941175 0.85098039215686272 0.8549019607843138 0.85882352941176465 0.86274509803921573 0.8666666666666667 0.87058823529411766 0.87450980392156863 0.8784313725490196 0.88235294117647056 0.88627450980392164 0.8901960784313725 0.89411764705882357 0.89803921568627443 0.90196078431372551 0.90588235294117636 0.90980392156862755 0.91372549019607852 0.91764705882352937 0.92156862745098023 0.92549019607843142 0.92941176470588238 0.93333333333333335 0.93725490196078431 0.94117647058823528 0.94509803921568625 0.94901960784313721 0.95294117647058818 0.95686274509803926 0.96078431372549011 0.96470588235294119 0.96862745098039216 0.97254901960784312 0.97647058823529409 0.98039215686274506 0.98431372549019591 0.98823529411764721 0.99215686274509807 0.99607843137254914 1))) + +# end of settings diff --git a/2.10/filters/GimpGegl-gegl-dropshadow-config.settings b/2.10/filters/GimpGegl-gegl-dropshadow-config.settings new file mode 100644 index 0000000..f1635c2 --- /dev/null +++ b/2.10/filters/GimpGegl-gegl-dropshadow-config.settings @@ -0,0 +1,53 @@ +# settings + +(GimpGegl-gegl-dropshadow-config "2020-04-10 21:56:21" + (time 1586552181) + (x 8.718) + (y 8.9740000000000002) + (radius 10) + (color (color-rgba 0 0 0 1)) + (opacity 0.69199999999999995)) +(GimpGegl-gegl-dropshadow-config "2020-04-10 16:58:16" + (time 1586534296) + (x 20) + (y 20) + (radius 10) + (color (color-rgba 0 0 0 1)) + (opacity 0.5)) +(GimpGegl-gegl-dropshadow-config "2020-04-10 16:44:41" + (time 1586533481) + (x -32.820999999999998) + (y -32.820999999999998) + (radius 107.92) + (color (color-rgba 0 0 0 1)) + (opacity 0.38400000000000001)) +(GimpGegl-gegl-dropshadow-config "2019-09-13 13:16:55" + (time 1568377015) + (x 0) + (y 0) + (radius 49.869999999999997) + (color (color-rgba 0.974468 0.95528400000000002 0.93522799999999995 1)) + (opacity 0.099000000000000005)) +(GimpGegl-gegl-dropshadow-config "2019-09-13 13:12:37" + (time 1568376757) + (x 0) + (y 0) + (radius 31.149999999999999) + (color (color-rgba 0 0 0 1)) + (opacity 0.77900000000000003)) +(GimpGegl-gegl-dropshadow-config "2019-09-13 13:10:04" + (time 1568376604) + (x 20) + (y 20) + (radius 6.5999999999999996) + (color (color-rgba 0 0 0 1)) + (opacity 0.5)) +(GimpGegl-gegl-dropshadow-config "2019-09-13 13:09:26" + (time 1568376566) + (x 7.6920000000000002) + (y 8.2050000000000001) + (radius 1.95) + (color (color-rgba 0.027451 0.039216000000000001 0.058824000000000001 1)) + (opacity 0.186)) + +# end of settings diff --git a/2.10/filters/GimpGegl-gegl-gaussian-blur-config.settings b/2.10/filters/GimpGegl-gegl-gaussian-blur-config.settings new file mode 100644 index 0000000..b30ff6c --- /dev/null +++ b/2.10/filters/GimpGegl-gegl-gaussian-blur-config.settings @@ -0,0 +1,74 @@ +# settings + +(GimpGegl-gegl-gaussian-blur-config "2020-04-14 21:24:23" + (time 1586895863) + (std-dev-x 9.1899999999999995) + (std-dev-y 9.1899999999999995) + (filter auto) + (abyss-policy clamp) + (clip-extent yes)) +(GimpGegl-gegl-gaussian-blur-config "2020-04-10 22:07:54" + (time 1586552874) + (std-dev-x 3) + (std-dev-y 3) + (filter auto) + (abyss-policy clamp) + (clip-extent yes)) +(GimpGegl-gegl-gaussian-blur-config "2020-04-10 22:01:41" + (time 1586552501) + (std-dev-x 4) + (std-dev-y 4) + (filter auto) + (abyss-policy clamp) + (clip-extent yes)) +(GimpGegl-gegl-gaussian-blur-config "2020-04-10 21:54:55" + (time 1586552095) + (std-dev-x 2) + (std-dev-y 2) + (filter auto) + (abyss-policy clamp) + (clip-extent yes)) +(GimpGegl-gegl-gaussian-blur-config "2020-04-10 21:46:11" + (time 1586551571) + (std-dev-x 68.030000000000001) + (std-dev-y 68.030000000000001) + (filter auto) + (abyss-policy clamp) + (clip-extent yes)) +(GimpGegl-gegl-gaussian-blur-config "2020-04-10 21:45:23" + (time 1586551523) + (std-dev-x 10) + (std-dev-y 10) + (filter auto) + (abyss-policy clamp) + (clip-extent yes)) +(GimpGegl-gegl-gaussian-blur-config "2020-04-10 20:43:52" + (time 1586547832) + (std-dev-x 3.5) + (std-dev-y 3.5) + (filter auto) + (abyss-policy clamp) + (clip-extent yes)) +(GimpGegl-gegl-gaussian-blur-config "2020-04-10 16:36:37" + (time 1586532997) + (std-dev-x 13) + (std-dev-y 13) + (filter auto) + (abyss-policy clamp) + (clip-extent yes)) +(GimpGegl-gegl-gaussian-blur-config "2020-04-10 12:56:20" + (time 1586519780) + (std-dev-x 6.6299999999999999) + (std-dev-y 6.6299999999999999) + (filter auto) + (abyss-policy clamp) + (clip-extent yes)) +(GimpGegl-gegl-gaussian-blur-config "2020-03-25 15:03:18" + (time 1585148598) + (std-dev-x 10.15) + (std-dev-y 10.15) + (filter auto) + (abyss-policy clamp) + (clip-extent yes)) + +# end of settings diff --git a/2.10/filters/GimpGegl-gegl-hue-chroma-config.settings b/2.10/filters/GimpGegl-gegl-hue-chroma-config.settings new file mode 100644 index 0000000..925d9c4 --- /dev/null +++ b/2.10/filters/GimpGegl-gegl-hue-chroma-config.settings @@ -0,0 +1,9 @@ +# settings + +(GimpGegl-gegl-hue-chroma-config "2020-03-24 20:39:33" + (time 1585082373) + (hue -6.2800000000000002) + (chroma 1.1599999999999999) + (lightness -11.630000000000001)) + +# end of settings diff --git a/2.10/filters/GimpGegl-gegl-noise-cie-lch-config.settings b/2.10/filters/GimpGegl-gegl-noise-cie-lch-config.settings new file mode 100644 index 0000000..ad4f70b --- /dev/null +++ b/2.10/filters/GimpGegl-gegl-noise-cie-lch-config.settings @@ -0,0 +1,11 @@ +# settings + +(GimpGegl-gegl-noise-cie-lch-config "2020-02-16 19:38:19" + (time 1581881899) + (holdness 1) + (lightness-distance 3.7799999999999998) + (chroma-distance 13.949999999999999) + (hue-distance 3) + (seed 0)) + +# end of settings diff --git a/2.10/filters/GimpGegl-gegl-saturation-config.settings b/2.10/filters/GimpGegl-gegl-saturation-config.settings new file mode 100644 index 0000000..d10296b --- /dev/null +++ b/2.10/filters/GimpGegl-gegl-saturation-config.settings @@ -0,0 +1,40 @@ +# settings + +(GimpGegl-gegl-saturation-config "2020-04-10 21:34:23" + (time 1586550863) + (scale 0) + (colorspace Native)) +(GimpGegl-gegl-saturation-config "2020-04-10 17:00:53" + (time 1586534453) + (scale 0.41299999999999998) + (colorspace Native)) +(GimpGegl-gegl-saturation-config "2020-04-10 12:48:29" + (time 1586519309) + (scale 0) + (colorspace CIE-Yuv)) +(GimpGegl-gegl-saturation-config "2020-03-25 15:02:19" + (time 1585148539) + (scale 1.7969999999999999) + (colorspace Native)) +(GimpGegl-gegl-saturation-config "2020-03-25 15:01:25" + (time 1585148485) + (scale 1.494) + (colorspace Native)) +(GimpGegl-gegl-saturation-config "2020-02-25 17:35:27" + (time 1582652127) + (scale 0.55200000000000005) + (colorspace Native)) +(GimpGegl-gegl-saturation-config "2020-02-09 16:38:56" + (time 1581266336) + (scale 0.58099999999999996) + (colorspace Native)) +(GimpGegl-gegl-saturation-config "2019-11-05 14:55:03" + (time 1572965703) + (scale 1) + (colorspace Native)) +(GimpGegl-gegl-saturation-config "2019-11-05 14:53:38" + (time 1572965618) + (scale 0.80800000000000005) + (colorspace Native)) + +# end of settings diff --git a/2.10/filters/GimpGegl-gegl-shadows-highlights-config.settings b/2.10/filters/GimpGegl-gegl-shadows-highlights-config.settings new file mode 100644 index 0000000..3838b76 --- /dev/null +++ b/2.10/filters/GimpGegl-gegl-shadows-highlights-config.settings @@ -0,0 +1,13 @@ +# settings + +(GimpGegl-gegl-shadows-highlights-config "2020-04-10 22:06:06" + (time 1586552766) + (shadows 17.469999999999999) + (highlights -48.799999999999997) + (whitepoint -8.1329999999999991) + (radius 100) + (compress 50.600000000000001) + (shadows-ccorrect 100) + (highlights-ccorrect 50)) + +# end of settings diff --git a/2.10/filters/GimpGegl-gimp-desaturate-config.settings b/2.10/filters/GimpGegl-gimp-desaturate-config.settings new file mode 100644 index 0000000..26d2f2a --- /dev/null +++ b/2.10/filters/GimpGegl-gimp-desaturate-config.settings @@ -0,0 +1,19 @@ +# settings + +(GimpGegl-gimp-desaturate-config "2020-04-14 21:18:21" + (time 1586895501) + (mode value)) +(GimpGegl-gimp-desaturate-config "2020-02-16 19:19:17" + (time 1581880757) + (mode luminance)) +(GimpGegl-gimp-desaturate-config "2019-11-19 17:15:33" + (time 1574183733) + (mode lightness)) +(GimpGegl-gimp-desaturate-config "2019-11-06 17:54:27" + (time 1573062867) + (mode average)) +(GimpGegl-gimp-desaturate-config "2019-11-01 10:53:37" + (time 1572605617) + (mode luma)) + +# end of settings diff --git a/2.10/filters/GimpHueSaturationConfig.settings b/2.10/filters/GimpHueSaturationConfig.settings new file mode 100644 index 0000000..ae322cd --- /dev/null +++ b/2.10/filters/GimpHueSaturationConfig.settings @@ -0,0 +1,66 @@ +# settings + +(GimpHueSaturationConfig "2020-03-24 20:42:33" + (time 1585082553) + (range all) + (hue 0) + (saturation 0.91000000000000003) + (lightness -0.67500000000000004) + (range red) + (hue 0) + (saturation 0) + (lightness 0) + (range yellow) + (hue 0) + (saturation 0) + (lightness 0) + (range green) + (hue 0) + (saturation 0) + (lightness 0) + (range cyan) + (hue 0) + (saturation 0) + (lightness 0) + (range blue) + (hue 0) + (saturation 0) + (lightness 0) + (range magenta) + (hue 0) + (saturation 0) + (lightness 0) + (overlap 0)) +(GimpHueSaturationConfig "2019-11-03 22:05:59" + (time 1572818759) + (range all) + (hue 0) + (saturation 0) + (lightness -0.22900000000000001) + (range red) + (hue 0) + (saturation 0) + (lightness 0) + (range yellow) + (hue 0) + (saturation 0) + (lightness 0) + (range green) + (hue 0) + (saturation 0) + (lightness 0) + (range cyan) + (hue 0) + (saturation 0) + (lightness 0) + (range blue) + (hue 0) + (saturation 0) + (lightness 0) + (range magenta) + (hue 0) + (saturation 0) + (lightness 0) + (overlap 0)) + +# end of settings diff --git a/2.10/filters/GimpLevelsConfig.settings b/2.10/filters/GimpLevelsConfig.settings new file mode 100644 index 0000000..d4403f9 --- /dev/null +++ b/2.10/filters/GimpLevelsConfig.settings @@ -0,0 +1,354 @@ +# settings + +(GimpLevelsConfig "2020-04-14 21:53:13" + (time 1586897593) + (linear no) + (clamp-input no) + (clamp-output no) + (channel value) + (low-input 0) + (high-input 0.21082621082621084) + (gamma 1) + (low-output 0) + (high-output 1) + (channel red) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel green) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel blue) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel alpha) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1)) +(GimpLevelsConfig "2020-04-10 22:06:19" + (time 1586552779) + (linear no) + (clamp-input no) + (clamp-output no) + (channel value) + (low-input 0.056980056980056981) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel red) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel green) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel blue) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel alpha) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1)) +(GimpLevelsConfig "2020-04-10 22:00:21" + (time 1586552421) + (linear no) + (clamp-input no) + (clamp-output no) + (channel value) + (low-input 0.15384615384615385) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel red) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel green) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel blue) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel alpha) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1)) +(GimpLevelsConfig "2020-04-10 20:47:06" + (time 1586548026) + (linear no) + (clamp-input no) + (clamp-output no) + (channel value) + (low-input 0.20227920227920229) + (high-input 1) + (gamma 0.94999999999999996) + (low-output 0) + (high-output 1) + (channel red) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel green) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel blue) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel alpha) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1)) +(GimpLevelsConfig "2020-03-25 14:56:13" + (time 1585148173) + (linear no) + (clamp-input no) + (clamp-output no) + (channel value) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel red) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel green) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 0.67806267806267806) + (channel blue) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel alpha) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1)) +(GimpLevelsConfig "2020-02-16 20:00:28" + (time 1581883228) + (linear no) + (clamp-input no) + (clamp-output no) + (channel value) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel red) + (low-input 0.23646723646723647) + (high-input 1) + (gamma 1.02) + (low-output 0) + (high-output 1) + (channel green) + (low-input 0.062678062678062682) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel blue) + (low-input 0.094017094017094016) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel alpha) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1)) +(GimpLevelsConfig "2019-11-19 17:16:53" + (time 1574183813) + (linear no) + (clamp-input no) + (clamp-output no) + (channel value) + (low-input 0.074712643678160925) + (high-input 1) + (gamma 1.1100000000000001) + (low-output 0) + (high-output 1) + (channel red) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel green) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel blue) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel alpha) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1)) +(GimpLevelsConfig "2019-11-16 16:21:41" + (time 1573921301) + (linear no) + (clamp-input no) + (clamp-output no) + (channel value) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel red) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel green) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel blue) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel alpha) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1)) +(GimpLevelsConfig "2019-11-06 17:52:22" + (time 1573062742) + (linear no) + (clamp-input no) + (clamp-output no) + (channel value) + (low-input 0.077586000000000002) + (high-input 0.97988500000000001) + (gamma 1) + (low-output 0) + (high-output 1) + (channel red) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel green) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel blue) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel alpha) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1)) +(GimpLevelsConfig "2019-11-05 14:40:21" + (time 1572964821) + (linear no) + (clamp-input no) + (clamp-output no) + (channel value) + (low-input 0.014368000000000001) + (high-input 1) + (gamma 0.71999999999999997) + (low-output 0) + (high-output 1) + (channel red) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel green) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel blue) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1) + (channel alpha) + (low-input 0) + (high-input 1) + (gamma 1) + (low-output 0) + (high-output 1)) + +# end of settings diff --git a/2.10/gimprc b/2.10/gimprc new file mode 100644 index 0000000..17028db --- /dev/null +++ b/2.10/gimprc @@ -0,0 +1,91 @@ +# GIMP gimprc +# +# This is your personal gimprc file. Any variable defined in this file takes +# precedence over the value defined in the system-wide gimprc: +# /etc/gimp/2.0/gimprc +# Most values can be set within GIMP by changing some options in the +# Preferences dialog. + +(default-image + (width 1920) + (height 1080) + (unit pixels) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type transparent) + (comment "")) +(undo-preview-size medium) +(import-raw-plug-in "${gimp_plug_in_dir}/plug-ins/file-raw-placeholder/file-raw-placeholder") +(monitor-xresolution 102) +(monitor-yresolution 102) +(default-view + (show-menubar no) + (show-statusbar yes) + (show-rulers yes) + (show-scrollbars yes) + (show-selection yes) + (show-layer-boundary no) + (show-canvas-boundary yes) + (show-guides yes) + (show-grid no) + (show-sample-points yes) + (snap-to-guides yes) + (snap-to-grid no) + (snap-to-canvas yes) + (snap-to-path no) + (padding-mode default) + (padding-color (color-rgb 1 1 1)) + (padding-in-show-all no)) +(default-fullscreen-view + (show-menubar no) + (show-statusbar yes) + (show-rulers yes) + (show-scrollbars yes) + (show-selection yes) + (show-layer-boundary no) + (show-canvas-boundary yes) + (show-guides yes) + (show-grid no) + (show-sample-points yes) + (snap-to-guides yes) + (snap-to-grid no) + (snap-to-canvas yes) + (snap-to-path no) + (padding-mode default) + (padding-color (color-rgb 1 1 1)) + (padding-in-show-all no)) +(user-manual-online yes) +(color-profile-policy convert) +(image-resize-fill-type foreground) +(layer-new-name "bottom") +(layer-new-fill-type foreground) +(selection-feather-radius 2) +(selection-grow-radius 4) +(selection-shrink-radius 2) +(fill-options + (style solid) + (antialias yes) + (feather no) + (feather-radius 10)) +(stroke-options + (style solid) + (antialias yes) + (feather no) + (feather-radius 10) + (method line) + (width 9) + (unit pixels) + (cap-style butt) + (join-style miter) + (miter-limit 10) + (dash-offset 0) + (dash-info 0) + (emulate-brush-dynamics no)) + + +# end of gimprc diff --git a/2.10/internal-data/custom.ggr b/2.10/internal-data/custom.ggr new file mode 100644 index 0000000..c160823 --- /dev/null +++ b/2.10/internal-data/custom.ggr @@ -0,0 +1,4 @@ +GIMP Gradient +Name: Custom +1 +0 0.51057401812688818 1 0 0 0 1 1 0.50588200000000005 0.11372500000000001 1 0 2 1 0 diff --git a/2.10/menurc b/2.10/menurc new file mode 100644 index 0000000..0c19d8c --- /dev/null +++ b/2.10/menurc @@ -0,0 +1,1319 @@ +; gimp GtkAccelMap rc-file -*- scheme -*- +; this file is an automated accelerator map dump +; +; (gtk_accel_path "/tools/tools-rotate-image-arbitrary" "") +; (gtk_accel_path "/file/file-menu" "") +; (gtk_accel_path "/view/view-show-canvas-boundary" "") +; (gtk_accel_path "/tools/tools-opacity-set-to-default" "") +; (gtk_accel_path "/context/context-background-value-decrease" "") +; (gtk_accel_path "/vectors/vectors-color-tag-brown" "") +; (gtk_accel_path "/tools/tools-opacity-increase-skip" "greater") +; (gtk_accel_path "/tools/tools-vector" "b") +; (gtk_accel_path "/windows/windows-display-0004" "") +; (gtk_accel_path "/palette-editor/palette-editor-new-color-bg" "") +; (gtk_accel_path "/view/view-scroll-left" "") +; (gtk_accel_path "/image/image-convert-u8" "") +; (gtk_accel_path "/tools/tools-airbrush-rate-increase" "") +; (gtk_accel_path "/tools/tools-spacing-set-to-default" "") +; (gtk_accel_path "/view/view-show-statusbar" "") +; (gtk_accel_path "/layers/layers-opacity-transparent" "") +; (gtk_accel_path "/vectors/vectors-color-tag-orange" "") +; (gtk_accel_path "/view/view-zoom-8-1-accel" "KP_4") +; (gtk_accel_path "/context/context-background-value-set" "") +; (gtk_accel_path "/windows/windows-display-0003" "") +; (gtk_accel_path "/context/context-paint-mode-menu" "") +; (gtk_accel_path "/filters/filters-motion-blur-linear" "") +; (gtk_accel_path "/filters/filters-gegl-graph" "") +; (gtk_accel_path "/windows/windows-display-0002" "") +; (gtk_accel_path "/context/context-brush-select-set" "") +; (gtk_accel_path "/edit/edit-copy" "c") +; (gtk_accel_path "/context/context-brush-shape-circle" "") +; (gtk_accel_path "/windows/windows-display-0001" "") +; (gtk_accel_path "/vectors/vectors-lock-content" "") +; (gtk_accel_path "/context/context-opacity-opaque" "") +; (gtk_accel_path "/view/view-color-management-menu" "") +; (gtk_accel_path "/filters/filters-spherize" "") +; (gtk_accel_path "/channels/channels-new-last-values" "") +; (gtk_accel_path "/vectors/vectors-merge-visible" "") +; (gtk_accel_path "/plug-in/script-fu-slide" "") +; (gtk_accel_path "/plug-in/plug-in-spheredesigner" "") +; (gtk_accel_path "/filters/filters-curves" "") +; (gtk_accel_path "/channels/channels-lock-position" "") +; (gtk_accel_path "/context/context-brush-menu" "") +; (gtk_accel_path "/context/context-foreground-blue-decrease" "") +; (gtk_accel_path "/context/context-colors-menu" "") +; (gtk_accel_path "/edit/edit-undo-clear" "") +; (gtk_accel_path "/context/context-gradient-select-first" "") +; (gtk_accel_path "/layers/layers-color-tag-brown" "") +; (gtk_accel_path "/plug-in/plug-in-imagemap" "") +; (gtk_accel_path "/filters/filters-recent-menu" "") +; (gtk_accel_path "/plug-in/plug-in-map-object" "") +; (gtk_accel_path "/layers/layers-text-along-vectors" "") +; (gtk_accel_path "/view/view-zoom-revert" "grave") +; (gtk_accel_path "/dialogs/dialogs-symmetry" "") +; (gtk_accel_path "/plug-in/plug-in-script-fu-console" "") +; (gtk_accel_path "/filters/filters-plasma" "") +; (gtk_accel_path "/view/view-color-management-enable" "") +; (gtk_accel_path "/dialogs/dialogs-undo-history" "") +; (gtk_accel_path "/edit/edit-cut" "x") +; (gtk_accel_path "/context/context-foreground-value-increase-skip" "") +; (gtk_accel_path "/plug-in/script-fu-addborder" "") +; (gtk_accel_path "/view/view-display-intent-absolute-colorimetric" "") +; (gtk_accel_path "/context/context-background-red-decrease" "") +; (gtk_accel_path "/tools/tools-airbrush-rate-maximum" "") +; (gtk_accel_path "/vectors/vectors-color-tag-menu" "") +; (gtk_accel_path "/view/view-fullscreen" "F11") +; (gtk_accel_path "/context/context-brush-radius-decrease-skip" "") +; (gtk_accel_path "/dialogs/dialogs-brushes" "b") +; (gtk_accel_path "/tools/tools-spacing-minimum" "") +; (gtk_accel_path "/context/context-foreground-blue-maximum" "") +; (gtk_accel_path "/view/view-zoom-2-1" "2") +; (gtk_accel_path "/view/view-snap-to-vectors" "") +; (gtk_accel_path "/context/context-foreground-red-increase" "") +; (gtk_accel_path "/image/image-properties" "Return") +; (gtk_accel_path "/drawable/drawable-rotate-270" "") +; (gtk_accel_path "/plug-in/script-fu-predator" "") +; (gtk_accel_path "/tools/tools-hardness-increase-percent" "") +; (gtk_accel_path "/plug-in/plug-in-colorify" "") +; (gtk_accel_path "/view/view-show-grid" "") +; (gtk_accel_path "/image/image-color-management-enabled" "") +; (gtk_accel_path "/tools/tools-angle-increase" "") +; (gtk_accel_path "/vectors/vectors-color-tag-violet" "") +; (gtk_accel_path "/context/context-background-saturation-decrease-skip" "") +; (gtk_accel_path "/layers/layers-composite-mode-union" "") +; (gtk_accel_path "/channels/channels-color-tag-blue" "") +; (gtk_accel_path "/windows/windows-dialogs-menu" "") +; (gtk_accel_path "/tools/tools-gegl" "") +; (gtk_accel_path "/tool-options/tool-options-reset" "") +; (gtk_accel_path "/layers/layers-delete" "") +; (gtk_accel_path "/view/view-display-intent-menu" "") +; (gtk_accel_path "/vectors/vectors-edit" "") +; (gtk_accel_path "/palette-editor/palette-editor-zoom-in" "") +; (gtk_accel_path "/filters/filters-illusion" "") +; (gtk_accel_path "/context/context-colormap-foreground-previous" "") +; (gtk_accel_path "/layers/layers-lock-content" "") +; (gtk_accel_path "/file/file-create-menu" "") +; (gtk_accel_path "/tools/tools-spacing-decrease-skip" "") +; (gtk_accel_path "/filters/filters-dropshadow" "") +; (gtk_accel_path "/context/context-background-green-increase" "") +; (gtk_accel_path "/layers/layers-alpha-selection-add" "") +; (gtk_accel_path "/plug-in/script-fu-make-brush-rectangular-feathered" "") +; (gtk_accel_path "/context/context-brush-radius-menu" "") +; (gtk_accel_path "/view/view-scroll-page-right" "") +; (gtk_accel_path "/layers/layers-blend-space-menu" "") +; (gtk_accel_path "/dockable/dialogs-histogram" "") +; (gtk_accel_path "/layers/layers-opacity-opaque" "") +; (gtk_accel_path "/context/context-background-saturation-increase" "") +; (gtk_accel_path "/dialogs/dialogs-dynamics-editor" "") +; (gtk_accel_path "/layers/layers-composite-space-menu" "") +; (gtk_accel_path "/file/file-revert" "") +; (gtk_accel_path "/filters/filters-fattal-2002" "") +; (gtk_accel_path "/tools/tools-color-average-radius-set" "") +; (gtk_accel_path "/filters/filters-distorts-menu" "") +; (gtk_accel_path "/tools/tools-fuzzy-select" "u") +; (gtk_accel_path "/debug/debug-show-image-graph" "") +; (gtk_accel_path "/context/context-brush-angle-maximum" "") +; (gtk_accel_path "/view/view-zoom-selection" "") +; (gtk_accel_path "/tools/tools-cage" "g") +; (gtk_accel_path "/file/file-open-location" "") +; (gtk_accel_path "/layers/layers-opacity-decrease" "") +; (gtk_accel_path "/plug-in/plug-in-blur" "") +; (gtk_accel_path "/context/context-foreground-hue-decrease-skip" "") +; (gtk_accel_path "/layers/layers-mask-add" "") +; (gtk_accel_path "/filters/filters-diffraction-patterns" "") +; (gtk_accel_path "/image/image-convert-rgb" "") +; (gtk_accel_path "/tools/tools-spacing-decrease-percent" "") +; (gtk_accel_path "/context/context-gradient-select-last" "") +; (gtk_accel_path "/file/file-create-template" "") +; (gtk_accel_path "/vectors/vectors-color-tag-yellow" "") +; (gtk_accel_path "/plug-in/plug-in-emboss" "") +; (gtk_accel_path "/dockable/dockable-view-type-grid" "") +; (gtk_accel_path "/view/view-navigation-window" "") +; (gtk_accel_path "/windows/windows-tabs-position-bottom" "") +; (gtk_accel_path "/context/context-brush-angle-set" "") +; (gtk_accel_path "/context/context-background-blue-decrease" "") +; (gtk_accel_path "/filters/filters-linear-sinusoid" "") +; (gtk_accel_path "/context/context-foreground-green-set" "") +; (gtk_accel_path "/tools/tools-levels" "") +; (gtk_accel_path "/plug-in/python-layer-fx-gradient-overlay" "") +; (gtk_accel_path "/plug-in/plug-in-script-fu-server" "") +; (gtk_accel_path "/dock/dock-move-to-screen-menu" "") +; (gtk_accel_path "/windows/windows-tabs-position-right" "") +; (gtk_accel_path "/plug-in/script-fu-line-nova" "") +; (gtk_accel_path "/layers/layers-color-tag-blue" "") +; (gtk_accel_path "/dialogs/dialogs-indexed-palette" "") +; (gtk_accel_path "/tools/tools-object-1-set" "") +; (gtk_accel_path "/channels/channels-new" "") +; (gtk_accel_path "/edit/edit-named-paste" "") +; (gtk_accel_path "/tools/tools-hardness-minimum" "") +; (gtk_accel_path "/filters/filters-menu" "") +; (gtk_accel_path "/tools/tools-opacity-set" "") +; (gtk_accel_path "/dockable/dialogs-toolbox" "b") +; (gtk_accel_path "/plug-in/gimp-help-using-fileformats" "") +; (gtk_accel_path "/edit/edit-strong-redo" "y") +; (gtk_accel_path "/filters/filters-alien-map" "") +; (gtk_accel_path "/plug-in/gimp-online-bugs-features" "") +; (gtk_accel_path "/tools/tools-object-2-last" "") +; (gtk_accel_path "/tools/tools-paintbrush-force-set" "") +; (gtk_accel_path "/vectors/vectors-linked" "") +; (gtk_accel_path "/filters/filters-gaussian-blur-selective" "") +; (gtk_accel_path "/filters/filters-unsharp-mask" "") +; (gtk_accel_path "/file/file-open-recent-menu" "") +; (gtk_accel_path "/tools/tools-hardness-decrease" "") +; (gtk_accel_path "/layers/layers-mask-show" "") +; (gtk_accel_path "/view/view-softproof-intent-absolute-colorimetric" "") +; (gtk_accel_path "/plug-in/python-layerfx-satin" "") +; (gtk_accel_path "/tools/tools-angle-decrease" "") +; (gtk_accel_path "/layers/layers-merge-layers-last-values" "") +; (gtk_accel_path "/context/context-background-blue-set" "") +; (gtk_accel_path "/tools/tools-opacity-increase-percent" "") +; (gtk_accel_path "/context/context-background-value-decrease-skip" "") +; (gtk_accel_path "/palette-editor/palette-editor-zoom-all" "") +; (gtk_accel_path "/plug-in/script-fu-spinning-globe" "") +; (gtk_accel_path "/windows/windows-menu" "") +; (gtk_accel_path "/tools/tools-object-1-first" "") +; (gtk_accel_path "/image/image-flip-horizontal" "") +; (gtk_accel_path "/plug-in/plug-in-sharpen" "") +; (gtk_accel_path "/tools/tools-force-decrease-percent" "") +; (gtk_accel_path "/context/context-brush-hardness-set" "") +; (gtk_accel_path "/select/select-stroke-last-values" "") +; (gtk_accel_path "/filters/filters-long-shadow" "") +; (gtk_accel_path "/context/context-brush-radius-increase-percent" "") +; (gtk_accel_path "/plug-in/plug-in-animationoptimize-diff" "") +; (gtk_accel_path "/tools/tools-perspective-clone" "") +; (gtk_accel_path "/image/colors-auto-menu" "") +; (gtk_accel_path "/vectors/vectors-selection-to-vectors-advanced" "") +; (gtk_accel_path "/context/context-background-saturation-decrease" "") +; (gtk_accel_path "/plug-in/script-fu-unsharp-mask" "") +; (gtk_accel_path "/tools/tools-rect-select" "r") +; (gtk_accel_path "/tools/tools-angle-set-to-default" "") +; (gtk_accel_path "/filters/filters-semi-flatten" "") +; (gtk_accel_path "/tools/tools-opacity-maximum" "") +; (gtk_accel_path "/dockable/dockable-tab-style-preview-name" "") +; (gtk_accel_path "/view/view-zoom-in-skip" "") +; (gtk_accel_path "/tools/tools-airbrush-flow-decrease" "") +; (gtk_accel_path "/plug-in/plug-in-dog" "") +; (gtk_accel_path "/debug/debug-mem-profile" "") +; (gtk_accel_path "/channels/channels-visible" "") +; (gtk_accel_path "/edit/edit-paste-as-new-layer" "") +; (gtk_accel_path "/context/context-foreground-hue-maximum" "") +; (gtk_accel_path "/tool-options/tool-options-restore-preset-menu" "") +; (gtk_accel_path "/dockable/dialogs-undo-history" "") +; (gtk_accel_path "/tools/tools-paintbrush-hardness-set" "") +; (gtk_accel_path "/filters/filters-stretch-contrast" "") +; (gtk_accel_path "/filters/filters-color-to-alpha" "") +; (gtk_accel_path "/dockable/dialogs-cursor" "") +; (gtk_accel_path "/context/context-brush-aspect-maximum" "") +; (gtk_accel_path "/dockable/dialogs-templates" "") +; (gtk_accel_path "/plug-in/script-fu-ripply-anim" "") +; (gtk_accel_path "/view/view-show-menubar" "") +; (gtk_accel_path "/filters/filters-web-menu" "") +; (gtk_accel_path "/plug-in/python-layerfx-outer-glow" "") +; (gtk_accel_path "/filters/filters-exposure" "") +; (gtk_accel_path "/tools/tools-foreground-select-brush-size-set" "") +; (gtk_accel_path "/tools/tools-spacing-increase" "") +; (gtk_accel_path "/context/context-background-hue-decrease-skip" "") +; (gtk_accel_path "/select/select-shrink" "") +; (gtk_accel_path "/view/view-scroll-horizontal" "") +; (gtk_accel_path "/select/select-fill-last-values" "") +; (gtk_accel_path "/image/image-resize-to-selection" "") +; (gtk_accel_path "/plug-in/script-fu-tile-blur" "") +; (gtk_accel_path "/filters/filters-color-temperature" "") +; (gtk_accel_path "/plug-in/script-fu-paste-as-pattern" "") +; (gtk_accel_path "/tools/tools-paintbrush-aspect-ratio-set" "") +; (gtk_accel_path "/plug-in/plug-in-gfig" "") +; (gtk_accel_path "/context/context-foreground-hue-set" "") +; (gtk_accel_path "/tools/tools-gradient" "g") +; (gtk_accel_path "/select/select-none" "a") +; (gtk_accel_path "/edit/edit-named-cut" "") +; (gtk_accel_path "/context/context-palette-select-set" "") +; (gtk_accel_path "/channels/channels-select-next" "") +; (gtk_accel_path "/image/image-precision-menu" "") +; (gtk_accel_path "/layers/layers-mask-menu" "") +; (gtk_accel_path "/layers/layers-alpha-selection-replace" "") +; (gtk_accel_path "/plug-in/gimp-palette-export-php" "") +; (gtk_accel_path "/filters/filters-noise-hsv" "") +; (gtk_accel_path "/filters/filters-noise-simplex" "") +; (gtk_accel_path "/help/help-help" "F1") +; (gtk_accel_path "/context/context-opacity-increase-skip" "") +; (gtk_accel_path "/view/view-padding-color-light-check" "") +; (gtk_accel_path "/context/context-brush-spikes-minimum" "") +; (gtk_accel_path "/plug-in/plug-in-gflare" "") +; (gtk_accel_path "/context/context-brush-aspect-set" "") +; (gtk_accel_path "/plug-in/plug-in-zealouscrop" "") +; (gtk_accel_path "/dockable/dialogs-gradient-editor" "") +; (gtk_accel_path "/tools/tools-color-menu" "") +; (gtk_accel_path "/tools/tools-airbrush-flow-maximum" "") +; (gtk_accel_path "/view/view-flip-horizontally" "") +; (gtk_accel_path "/layers/layers-composite-mode-auto" "") +; (gtk_accel_path "/plug-in/gimp-online-developer-web-site" "") +; (gtk_accel_path "/dockable/dockable-tab-style-name" "") +; (gtk_accel_path "/vectors/vectors-raise-to-top" "") +; (gtk_accel_path "/view/view-scroll-page-left" "") +; (gtk_accel_path "/tools/tools-threshold" "") +; (gtk_accel_path "/filters/filters-threshold" "") +; (gtk_accel_path "/tools/tools-airbrush-flow-set" "") +; (gtk_accel_path "/context/context-brush-spacing-minimum" "") +; (gtk_accel_path "/layers/layers-select-bottom" "End") +; (gtk_accel_path "/dockable/dockable-tab-style-preview" "") +; (gtk_accel_path "/dockable/dialogs-channels" "") +; (gtk_accel_path "/channels/channels-color-tag-none" "") +; (gtk_accel_path "/tools/tools-paintbrush" "p") +; (gtk_accel_path "/vectors/vectors-color-tag-gray" "") +; (gtk_accel_path "/context/context-brush-spacing-increase-skip" "") +; (gtk_accel_path "/vectors/vectors-stroke-last-values" "") +; (gtk_accel_path "/view/view-show-sample-points" "") +; (gtk_accel_path "/plug-in/python-layer-fx-outer-glow" "") +; (gtk_accel_path "/filters/filters-antialias" "") +; (gtk_accel_path "/dockable/dockable-preview-size-medium" "") +; (gtk_accel_path "/dockable/dialogs-colors" "") +; (gtk_accel_path "/view/view-show-all" "") +; (gtk_accel_path "/debug/debug-benchmark-projection" "") +; (gtk_accel_path "/context/context-brush-spikes-decrease" "") +; (gtk_accel_path "/filters/filters-noise-hurl" "") +; (gtk_accel_path "/file/file-save-and-close" "") +; (gtk_accel_path "/dialogs/dialogs-document-history" "") +; (gtk_accel_path "/context/context-opacity-set" "") +; (gtk_accel_path "/plug-in/script-fu-blend-anim" "") +; (gtk_accel_path "/view/view-zoom-in" "plus") +; (gtk_accel_path "/plug-in/plug-in-smooth-palette" "") +; (gtk_accel_path "/context/context-swatch-background-set" "") +; (gtk_accel_path "/windows/windows-tab-position" "") +; (gtk_accel_path "/dialogs/dialogs-error-console" "") +; (gtk_accel_path "/view/view-rotate-15" "") +; (gtk_accel_path "/view/view-zoom" "") +; (gtk_accel_path "/view/view-scroll-top-border" "") +; (gtk_accel_path "/layers/layers-new" "n") +; (gtk_accel_path "/plug-in/gimp-palette-export-java" "") +; (gtk_accel_path "/context/context-foreground-blue-increase-skip" "") +; (gtk_accel_path "/plug-in/script-fu-burn-in-anim" "") +; (gtk_accel_path "/tools/tools-paint-menu" "") +; (gtk_accel_path "/plug-in/plug-in-colormap-swap" "") +; (gtk_accel_path "/dockable/dialogs-mypaint-brushes" "") +; (gtk_accel_path "/dockable/dockable-preview-size-menu" "") +; (gtk_accel_path "/image/colors-menu" "") +; (gtk_accel_path "/vectors/vectors-lock-position" "") +; (gtk_accel_path "/vectors/vectors-visible" "") +; (gtk_accel_path "/image/image-flatten" "") +; (gtk_accel_path "/tools/tools-spacing-decrease" "") +; (gtk_accel_path "/filters/filters-dither" "") +; (gtk_accel_path "/plug-in/plug-in-decompose-registered" "") +; (gtk_accel_path "/channels/channels-selection-intersect" "") +; (gtk_accel_path "/plug-in/plug-in-cartoon" "") +; (gtk_accel_path "/palette-editor/palette-editor-zoom-out" "") +; (gtk_accel_path "/view/view-softproof-intent-perceptual" "") +; (gtk_accel_path "/tools/tools-offset" "") +; (gtk_accel_path "/image/image-convert-float" "") +; (gtk_accel_path "/edit/edit-clear" "Delete") +; (gtk_accel_path "/view/view-scroll-down" "") +; (gtk_accel_path "/context/context-foreground-green-increase" "") +; (gtk_accel_path "/image/image-scale" "") +; (gtk_accel_path "/tools/tools-aspect-increase-skip" "") +; (gtk_accel_path "/context/context-colormap-background-previous" "") +; (gtk_accel_path "/image/colors-info-menu" "") +; (gtk_accel_path "/plug-in/plug-in-lic" "") +; (gtk_accel_path "/context/context-background-value-increase" "") +; (gtk_accel_path "/dialogs/dialogs-channels" "") +; (gtk_accel_path "/filters/filters-component-extract" "") +; (gtk_accel_path "/tools/tools-size-maximum" "") +; (gtk_accel_path "/dockable/dialogs-dashboard" "") +; (gtk_accel_path "/vectors/vectors-select-previous" "") +; (gtk_accel_path "/layers/layers-mode-menu" "") +; (gtk_accel_path "/filters/filters-render-nature-menu" "") +; (gtk_accel_path "/layers/layers-color-tag-none" "") +; (gtk_accel_path "/dockable/dialogs-gradients" "g") +; (gtk_accel_path "/tools/tools-heal" "h") +; (gtk_accel_path "/view/view-scroll-right" "") +; (gtk_accel_path "/dialogs/dialogs-cursor" "") +; (gtk_accel_path "/context/context-foreground-saturation-minimum" "") +; (gtk_accel_path "/context/context-background-red-maximum" "") +; (gtk_accel_path "/context/context-brush-spikes-menu" "") +; (gtk_accel_path "/filters/filters-recent-10" "") +; (gtk_accel_path "/plug-in/file-gif-save2" "") +; (gtk_accel_path "/drawable/drawable-flip-horizontal" "") +; (gtk_accel_path "/layers/layers-merge-group" "") +; (gtk_accel_path "/file/file-open" "o") +; (gtk_accel_path "/plug-in/script-fu-font-map" "") +; (gtk_accel_path "/tools/tools-transform-preview-opacity-set" "") +; (gtk_accel_path "/dialogs/dialogs-histogram" "") +; (gtk_accel_path "/view/view-rotate-set-absolute" "") +; (gtk_accel_path "/layers/layers-mask-apply" "") +; (gtk_accel_path "/context/context-brush-radius-increase-less" "") +; (gtk_accel_path "/dialogs/dialogs-brush-editor" "") +; (gtk_accel_path "/context/context-background-saturation-maximum" "") +; (gtk_accel_path "/context/context-foreground-blue-increase" "") +; (gtk_accel_path "/layers/layers-duplicate" "d") +; (gtk_accel_path "/context/context-palette-select-next" "") +; (gtk_accel_path "/context/context-palette-foreground-next-skip" "") +; (gtk_accel_path "/layers/layers-mask-selection-add" "") +; (gtk_accel_path "/tools/tools-dodge-burn" "d") +; (gtk_accel_path "/edit/edit-copy-visible" "c") +; (gtk_accel_path "/palettes/palettes-duplicate" "") +; (gtk_accel_path "/layers/layers-select-previous" "Page_Up") +; (gtk_accel_path "/tools/tools-angle-maximum" "") +; (gtk_accel_path "/dockable/dockable-lock-tab" "") +; (gtk_accel_path "/context/context-foreground-value-minimum" "") +; (gtk_accel_path "/file/file-close-all" "w") +; (gtk_accel_path "/dialogs/dialogs-sample-points" "") +; (gtk_accel_path "/layers/layers-opacity-menu" "") +; (gtk_accel_path "/plug-in/plug-in-metadata-editor" "") +; (gtk_accel_path "/tools/tools-angle-increase-percent" "") +; (gtk_accel_path "/palette-editor/palette-editor-new-color-fg" "") +; (gtk_accel_path "/plug-in/script-fu-drop-shadow" "") +; (gtk_accel_path "/filters/filters-render-menu" "") +; (gtk_accel_path "/plug-in/plug-in-jigsaw" "") +; (gtk_accel_path "/dockable/dockable-tab-style-menu" "") +; (gtk_accel_path "/context/context-brush-hardness-decrease-skip" "") +; (gtk_accel_path "/plug-in/file-pdf-load" "") +; (gtk_accel_path "/plug-in/script-fu-guides-from-selection" "") +; (gtk_accel_path "/plug-in/script-fu-selection-to-brush" "") +; (gtk_accel_path "/layers/layers-blend-space-rgb-linear" "") +; (gtk_accel_path "/context/context-background-blue-maximum" "") +; (gtk_accel_path "/tools/tools-zoom" "z") +; (gtk_accel_path "/context/context-swatch-foreground-previous-skip" "") +; (gtk_accel_path "/plug-in/plug-in-checkerboard" "") +; (gtk_accel_path "/context/context-background-red-increase" "") +; (gtk_accel_path "/dockable/dockable-popup" "") +; (gtk_accel_path "/dockable/dockable-preview-size-extra-small" "") +; (gtk_accel_path "/filters/filters-render-clouds-menu" "") +; (gtk_accel_path "/context/context-palette-foreground-first" "") +; (gtk_accel_path "/view/view-zoom-4-1" "3") +; (gtk_accel_path "/channels/channels-duplicate" "") +; (gtk_accel_path "/context/context-brush-aspect-menu" "") +; (gtk_accel_path "/tools/tools-object-2-set" "") +; (gtk_accel_path "/context/context-brush-radius-increase" "") +; (gtk_accel_path "/context/context-swatch-background-next" "") +; (gtk_accel_path "/view/view-display-black-point-compensation" "") +; (gtk_accel_path "/tools/tools-size-decrease" "bracketleft") +; (gtk_accel_path "/dialogs/dialogs-colors" "") +; (gtk_accel_path "/filters/filters-edge" "") +; (gtk_accel_path "/image/image-rotate-180" "") +; (gtk_accel_path "/image/image-new" "n") +; (gtk_accel_path "/tool-options/tool-options-delete-preset-menu" "") +; (gtk_accel_path "/tools/tools-ink-blob-size-set" "") +; (gtk_accel_path "/filters/filters-value-propagate" "") +; (gtk_accel_path "/image/image-color-profile-assign" "") +; (gtk_accel_path "/layers/layers-composite-space-rgb-perceptual" "") +; (gtk_accel_path "/context/context-foreground-green-decrease" "") +; (gtk_accel_path "/layers/layers-scale" "") +; (gtk_accel_path "/layers/layers-transparency-menu" "") +; (gtk_accel_path "/layers/layers-alpha-remove" "") +; (gtk_accel_path "/context/context-pattern-select-set" "") +; (gtk_accel_path "/filters/filters-image-gradient" "") +; (gtk_accel_path "/select/select-all" "a") +; (gtk_accel_path "/plug-in/plug-in-filter-pack" "") +; (gtk_accel_path "/context/context-brush-hardness-maximum" "") +; (gtk_accel_path "/plug-in/plug-in-recompose" "") +; (gtk_accel_path "/view/view-zoom-menu" "") +; (gtk_accel_path "/image/image-convert-u16" "") +; (gtk_accel_path "/filters/filters-kaleidoscope" "") +; (gtk_accel_path "/palettes/palettes-edit" "") +; (gtk_accel_path "/context/context-colormap-foreground-previous-skip" "") +; (gtk_accel_path "/view/view-snap-to-grid" "") +; (gtk_accel_path "/vectors/vectors-fill" "") +; (gtk_accel_path "/view/view-color-management-reset" "") +; (gtk_accel_path "/context/context-background-green-set" "") +; (gtk_accel_path "/tools/tools-force-maximum" "") +; (gtk_accel_path "/context/context-foreground-saturation-increase" "") +; (gtk_accel_path "/plug-in/python-layerfx-color-overlay" "") +; (gtk_accel_path "/dockable/dialogs-device-status" "") +; (gtk_accel_path "/edit/edit-named-copy" "") +; (gtk_accel_path "/filters/filters-video-degradation" "") +; (gtk_accel_path "/edit/edit-paste-as-new-layer-in-place" "") +; (gtk_accel_path "/layers/layers-resize" "") +; (gtk_accel_path "/layers/layers-blend-space-rgb-perceptual" "") +; (gtk_accel_path "/layers/layers-stack-menu" "") +; (gtk_accel_path "/dockable/dockable-show-button-bar" "") +; (gtk_accel_path "/view/view-zoom-fill" "") +; (gtk_accel_path "/filters/filters-stretch-contrast-hsv" "") +; (gtk_accel_path "/view/view-padding-color-prefs" "") +; (gtk_accel_path "/plug-in/plug-in-depth-merge" "") +; (gtk_accel_path "/tools/tools-opacity-decrease-skip" "less") +; (gtk_accel_path "/plug-in/plug-in-guillotine" "") +; (gtk_accel_path "/windows/windows-tabs-position-left" "") +; (gtk_accel_path "/layers/layers-opacity-increase" "") +; (gtk_accel_path "/view/view-padding-color-in-show-all" "") +; (gtk_accel_path "/image/colors-tone-mapping-menu" "") +; (gtk_accel_path "/tools/tools-size-set" "") +; (gtk_accel_path "/context/context-brush-angle-increase-skip" "") +; (gtk_accel_path "/dialogs/dialogs-fonts" "") +; (gtk_accel_path "/channels/channels-linked" "") +; (gtk_accel_path "/dockable/dockable-preview-size-gigantic" "") +; (gtk_accel_path "/plug-in/script-fu-difference-clouds" "") +; (gtk_accel_path "/plug-in/plug-in-dbbrowser" "") +; (gtk_accel_path "/context/context-background-hue-set" "") +; (gtk_accel_path "/plug-in/python-layer-fx-pattern-overlay" "") +; (gtk_accel_path "/plug-in/plug-in-align-layers" "") +; (gtk_accel_path "/context/context-background-blue-increase" "") +; (gtk_accel_path "/dockable/dialogs-palettes" "") +; (gtk_accel_path "/filters/filters-hue-chroma" "") +; (gtk_accel_path "/plug-in/plug-in-blinds" "") +; (gtk_accel_path "/dockable/dockable-preview-size-enormous" "") +; (gtk_accel_path "/filters/filters-edge-detect-menu" "") +; (gtk_accel_path "/channels/channels-lock-content" "") +; (gtk_accel_path "/context/context-paint-mode-next" "") +; (gtk_accel_path "/tools/tools-clone" "c") +; (gtk_accel_path "/tools/tools-color-picker" "o") +; (gtk_accel_path "/plug-in/script-fu-make-brush-elliptical-feathered" "") +; (gtk_accel_path "/context/context-background-value-minimum" "") +; (gtk_accel_path "/drawable/drawable-linked" "") +; (gtk_accel_path "/select/select-sharpen" "") +; (gtk_accel_path "/context/context-colormap-foreground-next" "") +; (gtk_accel_path "/view/view-zoom-4-1-accel" "KP_3") +; (gtk_accel_path "/edit/edit-undo" "z") +; (gtk_accel_path "/plug-in/script-fu-paste-as-brush" "") +; (gtk_accel_path "/filters/filters-noise-cie-lch" "") +; (gtk_accel_path "/filters/filters-invert-perceptual" "") +; (gtk_accel_path "/vectors/vectors-selection-replace" "") +; (gtk_accel_path "/file/file-save-a-copy" "") +; (gtk_accel_path "/vectors/vectors-delete" "") +; (gtk_accel_path "/vectors/vectors-color-tag-blue" "") +; (gtk_accel_path "/channels/channels-edit-attributes" "") +; (gtk_accel_path "/tools/tools-transform-3d" "w") +; (gtk_accel_path "/file/file-show-in-file-manager" "f") +; (gtk_accel_path "/context/context-swatch-background-previous-skip" "") +; (gtk_accel_path "/windows/windows-tabs-position-top" "") +; (gtk_accel_path "/context/context-brush-radius-decrease" "") +; (gtk_accel_path "/filters/filters-light-shadow-menu" "") +; (gtk_accel_path "/layers/layers-mode-previous" "") +; (gtk_accel_path "/vectors/vectors-export" "") +; (gtk_accel_path "/tools/tools-hardness-increase" "") +; (gtk_accel_path "/tools/tools-size-increase-percent" "") +; (gtk_accel_path "/view/view-zoom-16-1-accel" "KP_5") +; (gtk_accel_path "/filters/filters-deinterlace" "") +; (gtk_accel_path "/plug-in/plug-in-compose" "") +; (gtk_accel_path "/context/context-colors-swap" "x") +; (gtk_accel_path "/context/context-foreground-value-decrease-skip" "") +; (gtk_accel_path "/drawable/drawable-lock-position" "") +; (gtk_accel_path "/context/context-palette-background-first" "") +; (gtk_accel_path "/select/select-grow" "") +; (gtk_accel_path "/palette-editor/palette-editor-popup" "") +; (gtk_accel_path "/filters/filters-invert-linear" "") +; (gtk_accel_path "/filters/filters-recent-09" "") +; (gtk_accel_path "/help/help-context-help" "F1") +; (gtk_accel_path "/dockable/dialogs-images" "") +; (gtk_accel_path "/tools/tools-opacity-decrease-percent" "") +; (gtk_accel_path "/plug-in/plug-in-gimpressionist" "") +; (gtk_accel_path "/filters/filters-recent-08" "") +; (gtk_accel_path "/plug-in/script-fu-selection-rounded-rectangle" "") +; (gtk_accel_path "/plug-in/script-fu-grid-system" "") +; (gtk_accel_path "/dialogs/dialogs-tool-options" "") +; (gtk_accel_path "/context/context-colormap-background-previous-skip" "") +; (gtk_accel_path "/dockable/dialogs-vectors" "") +; (gtk_accel_path "/dockable/dialogs-navigation" "") +; (gtk_accel_path "/context/context-colormap-foreground-first" "") +; (gtk_accel_path "/tools/tools-unified-transform" "t") +; (gtk_accel_path "/view/view-zoom-in-accel" "KP_Add") +; (gtk_accel_path "/dialogs/dialogs-palettes" "") +; (gtk_accel_path "/file/file-quit" "q") +; (gtk_accel_path "/context/context-foreground-saturation-decrease" "") +; (gtk_accel_path "/image/image-menubar" "") +; (gtk_accel_path "/dockable/dockable-tab-style-icon" "") +; (gtk_accel_path "/filters/filters-recent-07" "") +; (gtk_accel_path "/plug-in/script-fu-circuit" "") +; (gtk_accel_path "/plug-in/script-fu-make-brush-rectangular" "") +; (gtk_accel_path "/plug-in/script-fu-erase-rows" "") +; (gtk_accel_path "/tools/tools-ellipse-select" "e") +; (gtk_accel_path "/filters/filters-noise-pick" "") +; (gtk_accel_path "/tools/tools-curves" "") +; (gtk_accel_path "/file/file-export-as" "e") +; (gtk_accel_path "/layers/layers-color-tag-red" "") +; (gtk_accel_path "/view/view-scroll-center" "j") +; (gtk_accel_path "/image/image-popup" "") +; (gtk_accel_path "/filters/filters-recent-06" "") +; (gtk_accel_path "/tools/tools-airbrush-flow-increase" "") +; (gtk_accel_path "/dialogs/dialogs-toolbox" "b") +; (gtk_accel_path "/view/view-scroll-bottom-border" "") +; (gtk_accel_path "/plug-in/plug-in-palettemap" "") +; (gtk_accel_path "/plug-in/plug-in-softglow" "") +; (gtk_accel_path "/context/context-pattern-select-previous" "") +; (gtk_accel_path "/edit/edit-menu" "") +; (gtk_accel_path "/filters/filters-recent-05" "") +; (gtk_accel_path "/palette-editor/palette-editor-delete-color" "") +; (gtk_accel_path "/image/image-color-profile-convert" "") +; (gtk_accel_path "/plug-in/plug-in-wavelet-decompose" "") +; (gtk_accel_path "/context/context-palette-select-last" "") +; (gtk_accel_path "/view/view-scroll-page-down" "") +; (gtk_accel_path "/filters/filters-recent-04" "") +; (gtk_accel_path "/image/image-convert-linear" "") +; (gtk_accel_path "/context/context-foreground-value-increase" "") +; (gtk_accel_path "/view/view-zoom-out-accel" "KP_Subtract") +; (gtk_accel_path "/image/image-crop-to-selection" "") +; (gtk_accel_path "/context/context-brush-radius-maximum" "") +; (gtk_accel_path "/filters/filters-oilify" "") +; (gtk_accel_path "/layers/layers-opacity-increase-skip" "") +; (gtk_accel_path "/windows/windows-docks-menu" "") +; (gtk_accel_path "/filters/filters-emboss" "") +; (gtk_accel_path "/dockable/dockable-menu" "") +; (gtk_accel_path "/filters/filters-recent-03" "") +; (gtk_accel_path "/plug-in/plug-in-qbist" "") +; (gtk_accel_path "/layers/layers-lower" "") +; (gtk_accel_path "/tools/tools-align" "q") +; (gtk_accel_path "/context/context-brush-aspect-increase-skip" "") +; (gtk_accel_path "/tools/tools-handle-transform" "l") +; (gtk_accel_path "/layers/layers-new-group" "") +; (gtk_accel_path "/filters/filters-waves" "") +; (gtk_accel_path "/context/context-opacity-menu" "") +; (gtk_accel_path "/filters/filters-recent-02" "") +; (gtk_accel_path "/layers/layers-crop-to-content" "") +; (gtk_accel_path "/filters/filters-whirl-pinch" "") +; (gtk_accel_path "/filters/filters-render-pattern-menu" "") +; (gtk_accel_path "/tools/tools-measure" "m") +; (gtk_accel_path "/dockable/dialogs-tool-presets" "") +; (gtk_accel_path "/tools/tools-aspect-maximum" "") +; (gtk_accel_path "/tools/tools-flip" "f") +; (gtk_accel_path "/tools/tools-airbrush-rate-minimum" "") +; (gtk_accel_path "/help/help-menu" "") +; (gtk_accel_path "/filters/filters-recent-01" "") +; (gtk_accel_path "/image/image-color-profile-save" "") +; (gtk_accel_path "/filters/filters-median-blur" "") +; (gtk_accel_path "/vectors/vectors-paste" "") +; (gtk_accel_path "/context/context-foreground-blue-minimum" "") +; (gtk_accel_path "/filters/filters-apply-canvas" "") +; (gtk_accel_path "/plug-in/file-png-save2" "") +; (gtk_accel_path "/drawable/drawable-levels-stretch" "") +; (gtk_accel_path "/filters/filters-difference-of-gaussians" "") +; (gtk_accel_path "/tools/tools-angle-increase-skip" "") +; (gtk_accel_path "/context/context-swatch-background-last" "") +; (gtk_accel_path "/tools/tools-move" "m") +; (gtk_accel_path "/tools/tools-convolve" "u") +; (gtk_accel_path "/tools/tools-airbrush-flow-increase-skip" "") +; (gtk_accel_path "/context/context-foreground-saturation-increase-skip" "") +; (gtk_accel_path "/channels/channels-color-tag-green" "") +; (gtk_accel_path "/tools/tools-aspect-decrease-percent" "") +; (gtk_accel_path "/plug-in/gimp-help-using-photography" "") +; (gtk_accel_path "/dialogs/dialogs-dashboard" "") +; (gtk_accel_path "/layers/layers-crop-to-selection" "") +; (gtk_accel_path "/layers/layers-mask-selection-subtract" "") +; (gtk_accel_path "/plug-in/script-fu-guides-remove" "") +; (gtk_accel_path "/dialogs/dialogs-palette-editor" "") +; (gtk_accel_path "/filters/filters-channel-mixer" "") +; (gtk_accel_path "/images/images-raise-views" "") +; (gtk_accel_path "/plug-in/script-fu-waves-anim" "") +; (gtk_accel_path "/context/context-foreground-green-maximum" "") +; (gtk_accel_path "/view/view-menu" "") +; (gtk_accel_path "/view/view-dot-for-dot" "") +; (gtk_accel_path "/context/context-gradient-select-set" "") +; (gtk_accel_path "/dockable/dockable-close-tab" "") +; (gtk_accel_path "/dockable/dialogs-dynamics-editor" "") +; (gtk_accel_path "/vectors/vectors-selection-intersect" "") +; (gtk_accel_path "/vectors/vectors-stroke" "") +; (gtk_accel_path "/filters/filters-little-planet" "") +; (gtk_accel_path "/context/context-pattern-menu" "") +; (gtk_accel_path "/view/view-show-rulers" "r") +; (gtk_accel_path "/context/context-brush-spikes-increase" "") +; (gtk_accel_path "/view/view-snap-to-guides" "") +; (gtk_accel_path "/layers/layers-alpha-selection-subtract" "") +; (gtk_accel_path "/channels/channels-select-top" "") +; (gtk_accel_path "/plug-in/script-fu-sota-chrome-it" "") +; (gtk_accel_path "/view/view-move-to-screen-:0.0" "") +; (gtk_accel_path "/plug-in/gimp-palette-export-python" "") +; (gtk_accel_path "/context/context-swatch-foreground-next" "0") +; (gtk_accel_path "/select/selection-popup" "") +; (gtk_accel_path "/edit/edit-paste-into" "") +; (gtk_accel_path "/tools/tools-opacity-decrease" "less") +; (gtk_accel_path "/filters/filters-bayer-matrix" "") +; (gtk_accel_path "/context/context-brush-angle-minimum" "") +; (gtk_accel_path "/tools/tools-aspect-increase" "") +; (gtk_accel_path "/vectors/vectors-selection-to-vectors-short" "") +; (gtk_accel_path "/context/context-brush-spikes-maximum" "") +; (gtk_accel_path "/tools/tools-aspect-set" "") +; (gtk_accel_path "/layers/layers-popup" "") +; (gtk_accel_path "/plug-in/python-layerfx-inner-glow" "") +; (gtk_accel_path "/context/context-foreground-green-increase-skip" "") +; (gtk_accel_path "/filters/filters-generic-menu" "") +; (gtk_accel_path "/image/image-resize-to-layers" "") +; (gtk_accel_path "/windows/windows-use-single-window-mode" "") +; (gtk_accel_path "/channels/channels-lower-to-bottom" "") +; (gtk_accel_path "/context/context-colormap-background-first" "") +; (gtk_accel_path "/edit/edit-fill-pattern" "semicolon") +; (gtk_accel_path "/context/context-paint-mode-first" "") +; (gtk_accel_path "/plug-in/script-fu-reverse-layers" "") +; (gtk_accel_path "/dockable/dockable-preview-size-extra-large" "") +; (gtk_accel_path "/palettes/palettes-import" "") +; (gtk_accel_path "/dockable/dialogs-indexed-palette" "") +; (gtk_accel_path "/context/context-brush-spikes-set" "") +; (gtk_accel_path "/vectors/vectors-new-last-values" "") +; (gtk_accel_path "/tools/tools-object-2-previous" "") +; (gtk_accel_path "/plug-in/plug-in-retinex" "") +; (gtk_accel_path "/context/context-swatch-foreground-previous" "9") +; (gtk_accel_path "/context/context-foreground-value-decrease" "") +; (gtk_accel_path "/plug-in/python-layerfx-gradient-overlay" "") +; (gtk_accel_path "/context/context-brush-select-first" "") +; (gtk_accel_path "/context/context-swatch-foreground-next-skip" "") +; (gtk_accel_path "/palettes/palettes-new" "") +; (gtk_accel_path "/tools/tools-force-increase-skip" "") +; (gtk_accel_path "/dockable/dockable-detach-tab" "") +; (gtk_accel_path "/image/image-print-size" "") +; (gtk_accel_path "/filters/filters-fractal-trace" "") +; (gtk_accel_path "/filters/filters-panorama-projection" "") +; (gtk_accel_path "/context/context-paint-mode-last" "") +; (gtk_accel_path "/image/colors-components-menu" "") +; (gtk_accel_path "/context/context-colormap-foreground-last" "") +; (gtk_accel_path "/view/view-zoom-out" "minus") +; (gtk_accel_path "/plug-in/plug-in-colormap-remap" "") +; (gtk_accel_path "/context/context-palette-background-next-skip" "") +; (gtk_accel_path "/plug-in/python-layer-fx-reapply-effects" "") +; (gtk_accel_path "/tools/tools-force-decrease" "") +; (gtk_accel_path "/context/context-background-hue-maximum" "") +; (gtk_accel_path "/plug-in/plug-in-mail-image" "") +; (gtk_accel_path "/filters/filters-mantiuk-2006" "") +; (gtk_accel_path "/plug-in/plug-in-small-tiles" "") +; (gtk_accel_path "/layers/layers-composite-mode-clip-to-layer" "") +; (gtk_accel_path "/filters/filters-noise-menu" "") +; (gtk_accel_path "/layers/layers-mask-disable" "") +; (gtk_accel_path "/tools/tools-brightness-contrast" "") +; (gtk_accel_path "/filters/filters-erode" "") +; (gtk_accel_path "/context/context-brush-spikes-increase-skip" "") +; (gtk_accel_path "/context/context-palette-select-previous" "") +; (gtk_accel_path "/vectors/vectors-color-tag-none" "") +; (gtk_accel_path "/layers/layers-transform-menu" "") +; (gtk_accel_path "/context/context-pattern-select-first" "") +; (gtk_accel_path "/tools/tools-spacing-increase-percent" "") +; (gtk_accel_path "/select/select-border" "") +; (gtk_accel_path "/plug-in/script-fu-clothify" "") +; (gtk_accel_path "/edit/edit-paste-into-in-place" "") +; (gtk_accel_path "/layers/layers-new-last-values" "") +; (gtk_accel_path "/context/context-opacity-transparent" "") +; (gtk_accel_path "/plug-in/plug-in-animationoptimize" "") +; (gtk_accel_path "/context/context-colormap-background-next" "") +; (gtk_accel_path "/layers/layers-blend-space-auto" "") +; (gtk_accel_path "/plug-in/file-pdf-save-multi" "") +; (gtk_accel_path "/layers/layers-merge-layers" "") +; (gtk_accel_path "/plug-in/python-layer-fx-inner-glow" "") +; (gtk_accel_path "/layers/layers-composite-space-auto" "") +; (gtk_accel_path "/context/context-opacity-decrease-skip" "") +; (gtk_accel_path "/dockable/dialogs-buffers" "") +; (gtk_accel_path "/tools/tools-perspective" "p") +; (gtk_accel_path "/context/context-foreground-red-increase-skip" "") +; (gtk_accel_path "/context/context-colormap-foreground-set" "") +; (gtk_accel_path "/plug-in/script-fu-copy-visible" "") +; (gtk_accel_path "/palettes/palettes-merge" "") +; (gtk_accel_path "/filters/filters-high-pass" "") +; (gtk_accel_path "/layers/layers-composite-mode-clip-to-backdrop" "") +; (gtk_accel_path "/tools/tools-menu" "") +; (gtk_accel_path "/context/context-background-green-maximum" "") +; (gtk_accel_path "/filters/filters-brightness-contrast" "") +; (gtk_accel_path "/filters/filters-shadows-highlights" "") +; (gtk_accel_path "/channels/channels-color-tag-brown" "") +; (gtk_accel_path "/filters/filters-desaturate" "") +; (gtk_accel_path "/context/context-palette-foreground-previous" "") +; (gtk_accel_path "/plug-in/plug-in-nlfilt" "") +; (gtk_accel_path "/plug-in/gimp-palette-export-text" "") +; (gtk_accel_path "/context/context-palette-foreground-set" "") +; (gtk_accel_path "/tools/tools-paintbrush-spacing-set" "") +; (gtk_accel_path "/filters/filters-offset" "o") +; (gtk_accel_path "/filters/filters-softglow" "") +; (gtk_accel_path "/context/context-brush-shape-square" "") +; (gtk_accel_path "/vectors/vectors-select-top" "") +; (gtk_accel_path "/tools/tools-opacity-minimum" "") +; (gtk_accel_path "/channels/channels-raise-to-top" "") +; (gtk_accel_path "/filters/filters-reinhard-2005" "") +; (gtk_accel_path "/filters/filters-threshold-alpha" "") +; (gtk_accel_path "/view/view-zoom-2-1-accel" "KP_2") +; (gtk_accel_path "/context/context-foreground-hue-minimum" "") +; (gtk_accel_path "/tools/tools-aspect-decrease" "") +; (gtk_accel_path "/context/context-brush-spacing-decrease-skip" "") +; (gtk_accel_path "/plug-in/plug-in-fractal-trace" "") +; (gtk_accel_path "/tools/tools-mypaint-brush-radius-set" "") +; (gtk_accel_path "/context/context-tool-select-first" "") +; (gtk_accel_path "/vectors/vectors-lower" "") +; (gtk_accel_path "/context/context-brush-aspect-minimum" "") +; (gtk_accel_path "/layers/layers-mask-delete" "") +; (gtk_accel_path "/tools/tools-angle-decrease-percent" "") +; (gtk_accel_path "/context/context-background-green-increase-skip" "") +; (gtk_accel_path "/plug-in/plug-in-ccanalyze" "") +; (gtk_accel_path "/filters/filters-artistic-menu" "") +; (gtk_accel_path "/select/select-flood" "") +; (gtk_accel_path "/tools/tools-hardness-set-to-default" "") +; (gtk_accel_path "/tools/tools-bucket-fill" "b") +; (gtk_accel_path "/tools/tools-angle-set" "") +; (gtk_accel_path "/tools/tools-ink-blob-aspect-set" "") +; (gtk_accel_path "/tools/tools-size-increase" "bracketright") +; (gtk_accel_path "/tools/tools-force-increase-percent" "") +; (gtk_accel_path "/image/image-color-management-menu" "") +; (gtk_accel_path "/channels/channels-selection-replace" "") +; (gtk_accel_path "/dockable/dialogs-layers" "l") +; (gtk_accel_path "/view/view-zoom-fit-in" "j") +; (gtk_accel_path "/filters/filters-repeat" "f") +; (gtk_accel_path "/filters/filters-maze" "") +; (gtk_accel_path "/context/context-brush-shape-menu" "") +; (gtk_accel_path "/dockable/dialogs-palette-editor" "") +; (gtk_accel_path "/context/context-colors-default" "d") +; (gtk_accel_path "/drawable/drawable-flip-vertical" "") +; (gtk_accel_path "/filters/filters-color-balance" "") +; (gtk_accel_path "/tools/tools-size-set-to-default" "backslash") +; (gtk_accel_path "/layers/layers-raise-to-top" "") +; (gtk_accel_path "/context/context-foreground-blue-decrease-skip" "") +; (gtk_accel_path "/plug-in/plug-in-gradmap" "") +; (gtk_accel_path "/filters/filters-checkerboard" "") +; (gtk_accel_path "/image/image-convert-grayscale" "") +; (gtk_accel_path "/palettes/palettes-popup" "") +; (gtk_accel_path "/plug-in/script-fu-fuzzy-border" "") +; (gtk_accel_path "/filters/filters-tile-paper" "") +; (gtk_accel_path "/dialogs/dialogs-selection-editor" "") +; (gtk_accel_path "/layers/layers-edit" "") +; (gtk_accel_path "/image/colors-desaturate-menu" "") +; (gtk_accel_path "/layers/layers-flatten-image" "") +; (gtk_accel_path "/tools/tools-airbrush-rate-increase-skip" "") +; (gtk_accel_path "/channels/channels-select-bottom" "") +; (gtk_accel_path "/dialogs/dialogs-preferences" "") +; (gtk_accel_path "/plug-in/plug-in-animationplay" "") +; (gtk_accel_path "/context/context-brush-angle-menu" "") +; (gtk_accel_path "/tools/tools-airbrush-flow-minimum" "") +; (gtk_accel_path "/view/view-rotate-menu" "") +; (gtk_accel_path "/vectors/vectors-import" "") +; (gtk_accel_path "/plug-in/script-fu-xach-effect" "") +; (gtk_accel_path "/view/view-rotate-345" "") +; (gtk_accel_path "/plug-in/plug-in-decompose" "") +; (gtk_accel_path "/plug-in/gimp-palette-export-css" "") +; (gtk_accel_path "/filters/filters-color-exchange" "") +; (gtk_accel_path "/tools/tools-warp-effect-size-set" "") +; (gtk_accel_path "/view/view-display-intent-perceptual" "") +; (gtk_accel_path "/dialogs/dialogs-navigation" "") +; (gtk_accel_path "/dock/dock-open-display" "") +; (gtk_accel_path "/context/context-paint-mode-previous" "") +; (gtk_accel_path "/plug-in/plug-in-hot" "") +; (gtk_accel_path "/tools/tools-aspect-decrease-skip" "") +; (gtk_accel_path "/view/view-zoom-out-skip" "") +; (gtk_accel_path "/dialogs/dialogs-keyboard-shortcuts" "") +; (gtk_accel_path "/view/view-zoom-maximum" "") +; (gtk_accel_path "/dialogs/dialogs-input-devices" "") +; (gtk_accel_path "/dockable/dialogs-document-history" "") +; (gtk_accel_path "/quick-mask/quick-mask-invert-on" "") +; (gtk_accel_path "/context/context-swatch-foreground-first" "") +; (gtk_accel_path "/file/file-export" "e") +; (gtk_accel_path "/plug-in/script-fu-set-cmap" "") +; (gtk_accel_path "/layers/layers-text-discard" "") +; (gtk_accel_path "/context/context-foreground-red-maximum" "") +; (gtk_accel_path "/filters/filters-edge-sobel" "") +; (gtk_accel_path "/palette-editor/palette-editor-edit-color" "") +; (gtk_accel_path "/palettes/palettes-show-in-file-manager" "") +; (gtk_accel_path "/dockable/dockable-preview-size-tiny" "") +; (gtk_accel_path "/plug-in/script-fu-guide-new-percent" "") +; (gtk_accel_path "/view/view-show-scrollbars" "") +; (gtk_accel_path "/filters/filters-render-noise-menu" "") +; (gtk_accel_path "/channels/channels-delete" "") +; (gtk_accel_path "/palettes/palettes-delete" "") +; (gtk_accel_path "/image/image-flip-vertical" "") +; (gtk_accel_path "/layers/layers-opacity-set" "") +; (gtk_accel_path "/context/context-font-select-next" "") +; (gtk_accel_path "/context/context-menu" "") +; (gtk_accel_path "/image/image-convert-half" "") +; (gtk_accel_path "/tools/tools-size-increase-skip" "bracketright") +; (gtk_accel_path "/file/file-overwrite" "") +; (gtk_accel_path "/context/context-background-red-increase-skip" "") +; (gtk_accel_path "/vectors/vectors-popup" "") +; (gtk_accel_path "/image/image-rotate-90" "") +; (gtk_accel_path "/edit/edit-fill-bg" "period") +; (gtk_accel_path "/tools/tools-iscissors" "i") +; (gtk_accel_path "/context/context-palette-menu" "") +; (gtk_accel_path "/layers/layers-properties-menu" "") +; (gtk_accel_path "/view/view-flip-vertically" "") +; (gtk_accel_path "/context/context-foreground-hue-increase" "") +; (gtk_accel_path "/select/select-invert" "i") +; (gtk_accel_path "/layers/layers-mode-next" "") +; (gtk_accel_path "/file/file-save-as" "s") +; (gtk_accel_path "/context/context-swatch-foreground-last" "") +; (gtk_accel_path "/context/context-palette-background-next" "") +; (gtk_accel_path "/image/image-rotate-270" "") +; (gtk_accel_path "/tools/tools-warp" "w") +; (gtk_accel_path "/context/context-brush-hardness-menu" "") +; (gtk_accel_path "/plug-in/script-fu-erase-nth-rows" "") +; (gtk_accel_path "/context/context-brush-radius-decrease-less" "") +; (gtk_accel_path "/plug-in/python-layer-fx-color-overlay" "") +; (gtk_accel_path "/quick-mask/quick-mask-popup" "") +; (gtk_accel_path "/plug-in/plug-in-sparkle" "") +; (gtk_accel_path "/vectors/vectors-selection-subtract" "") +; (gtk_accel_path "/plug-in/python-layerfx-reapply-effects" "") +; (gtk_accel_path "/filters/filters-combine-menu" "") +; (gtk_accel_path "/layers/layers-raise" "") +; (gtk_accel_path "/edit/edit-strong-undo" "z") +; (gtk_accel_path "/context/context-colormap-foreground-next-skip" "") +; (gtk_accel_path "/context/context-brush-aspect-increase" "") +; (gtk_accel_path "/filters/filters-invert-value" "") +; (gtk_accel_path "/context/context-foreground-blue-set" "") +; (gtk_accel_path "/filters/filters-bump-map" "") +; (gtk_accel_path "/plug-in/file-gih-save-internal" "") +; (gtk_accel_path "/context/context-background-blue-increase-skip" "") +; (gtk_accel_path "/plug-in/script-fu-old-photo" "") +; (gtk_accel_path "/dialogs/dialogs-module-dialog" "") +; (gtk_accel_path "/image/image-configure-grid" "") +; (gtk_accel_path "/context/context-tool-menu" "") +; (gtk_accel_path "/view/view-zoom-1-1-accel" "KP_1") +; (gtk_accel_path "/filters/filters-noise-spread" "") +; (gtk_accel_path "/plug-in/script-fu-round-corners" "") +; (gtk_accel_path "/tools/tools-hardness-increase-skip" "") +; (gtk_accel_path "/select/select-save" "") +; (gtk_accel_path "/context/context-background-saturation-set" "") +; (gtk_accel_path "/plug-in/script-fu-guide-new" "") +; (gtk_accel_path "/tools/tools-hardness-decrease-percent" "") +; (gtk_accel_path "/tools/tools-size-minimum" "") +; (gtk_accel_path "/plug-in/gimp-help-concepts-paths" "") +; (gtk_accel_path "/vectors/vectors-select-next" "") +; (gtk_accel_path "/filters/filters-noise-cell" "") +; (gtk_accel_path "/quick-mask/quick-mask-toggle" "q") +; (gtk_accel_path "/filters/filters-gaussian-blur" "") +; (gtk_accel_path "/plug-in/plug-in-screenshot" "") +; (gtk_accel_path "/view/view-rotate-180" "") +; (gtk_accel_path "/tools/tools-text" "t") +; (gtk_accel_path "/filters/filters-newsprint" "") +; (gtk_accel_path "/filters/filters-noise-solid" "") +; (gtk_accel_path "/file/file-open-as-layers" "o") +; (gtk_accel_path "/context/context-background-red-minimum" "") +; (gtk_accel_path "/plug-in/gimp-online-wiki" "") +; (gtk_accel_path "/layers/layers-merge-down-button" "") +; (gtk_accel_path "/plug-in/script-fu-refresh" "") +; (gtk_accel_path "/layers/layers-text-to-vectors" "") +; (gtk_accel_path "/vectors/vectors-fill-last-values" "") +; (gtk_accel_path "/view/view-padding-color-menu" "") +; (gtk_accel_path "/tools/tools-smudge" "s") +; (gtk_accel_path "/context/context-font-menu" "") +; (gtk_accel_path "/tools/tools-mypaint-brush-hardness-set" "") +; (gtk_accel_path "/plug-in/plug-in-pagecurl" "") +; (gtk_accel_path "/dialogs/dialogs-layers" "l") +; (gtk_accel_path "/context/context-colormap-background-last" "") +; (gtk_accel_path "/plug-in/script-fu-selection-to-image" "") +; (gtk_accel_path "/channels/channels-selection-add" "") +; (gtk_accel_path "/context/context-palette-select-first" "") +; (gtk_accel_path "/layers/layers-lock-position" "") +; (gtk_accel_path "/tools/tools-object-1-next" "") +; (gtk_accel_path "/dialogs/dialogs-device-status" "") +; (gtk_accel_path "/view/view-scroll-vertical" "") +; (gtk_accel_path "/view/view-show-selection" "t") +; (gtk_accel_path "/tools/tools-spacing-maximum" "") +; (gtk_accel_path "/filters/filters-photocopy" "") +; (gtk_accel_path "/channels/channels-color-tag-orange" "") +; (gtk_accel_path "/tools/tools-ink-blob-angle-set" "") +; (gtk_accel_path "/context/context-background-saturation-minimum" "") +; (gtk_accel_path "/layers/layers-lock-alpha" "") +; (gtk_accel_path "/tools/tools-transform-menu" "") +; (gtk_accel_path "/plug-in/plug-in-borderaverage" "") +; (gtk_accel_path "/view/view-padding-color-theme" "") +; (gtk_accel_path "/plug-in/script-fu-gradient-example" "") +; (gtk_accel_path "/filters/filters-color-rotate" "") +; (gtk_accel_path "/dockable/dialogs-dynamics" "") +; (gtk_accel_path "/plug-in/gimp-online-roadmap" "") +; (gtk_accel_path "/filters/filters-vignette" "") +; (gtk_accel_path "/tools/tools-ink" "k") +; (gtk_accel_path "/filters/filters-apply-lens" "") +; (gtk_accel_path "/tools/tools-angle-minimum" "") +; (gtk_accel_path "/plug-in/python-layerfx-stroke" "") +; (gtk_accel_path "/tools/tools-airbrush-rate-set" "") +; (gtk_accel_path "/layers/layers-mask-add-button" "") +; (gtk_accel_path "/layers/layers-color-tag-orange" "") +; (gtk_accel_path "/plug-in/script-fu-coffee-stain" "") +; (gtk_accel_path "/view/view-display-filters" "") +; (gtk_accel_path "/context/context-swatch-background-first" "") +; (gtk_accel_path "/layers/layers-composite-mode-intersection" "") +; (gtk_accel_path "/filters/filters-noise-rgb" "") +; (gtk_accel_path "/context/context-foreground-hue-decrease" "") +; (gtk_accel_path "/plug-in/plug-in-tile" "") +; (gtk_accel_path "/filters/filters-edge-neon" "") +; (gtk_accel_path "/dialogs/dialogs-about" "") +; (gtk_accel_path "/plug-in/plug-in-despeckle" "") +; (gtk_accel_path "/tools/tools-spacing-set" "") +; (gtk_accel_path "/dialogs/dialogs-templates" "") +; (gtk_accel_path "/tools/tools-object-2-first" "") +; (gtk_accel_path "/context/context-background-blue-minimum" "") +; (gtk_accel_path "/quick-mask/quick-mask-invert-off" "") +; (gtk_accel_path "/filters/filters-lens-flare" "") +; (gtk_accel_path "/filters/filters-tile-seamless" "") +; (gtk_accel_path "/filters/filters-red-eye-removal" "") +; (gtk_accel_path "/layers/layers-resize-to-image" "") +; (gtk_accel_path "/view/view-color-management-softproof" "") +; (gtk_accel_path "/filters/filters-render-fractals-menu" "") +; (gtk_accel_path "/context/context-brush-angle-decrease-skip" "") +; (gtk_accel_path "/plug-in/gimp-help-using-web" "") +; (gtk_accel_path "/dialogs/dialogs-vectors" "") +; (gtk_accel_path "/edit/edit-buffer-menu" "") +; (gtk_accel_path "/plug-in/script-fu-make-brush-elliptical" "") +; (gtk_accel_path "/plug-in/plug-in-grid" "") +; (gtk_accel_path "/plug-in/file-pdf-save" "") +; (gtk_accel_path "/filters/filters-color-enhance" "") +; (gtk_accel_path "/plug-in/file-png-save" "") +; (gtk_accel_path "/view/view-padding-color-custom" "") +; (gtk_accel_path "/plug-in/script-fu-weave" "") +; (gtk_accel_path "/filters/filters-blur-menu" "") +; (gtk_accel_path "/context/context-brush-aspect-decrease" "") +; (gtk_accel_path "/tools/tools-paintbrush-angle-set" "") +; (gtk_accel_path "/context/context-pattern-select-next" "") +; (gtk_accel_path "/channels/channels-lower" "") +; (gtk_accel_path "/view/view-rotate-other" "") +; (gtk_accel_path "/context/context-brush-hardness-minimum" "") +; (gtk_accel_path "/filters/filters-mosaic" "") +; (gtk_accel_path "/debug/debug-menu" "") +; (gtk_accel_path "/context/context-brush-radius-increase-skip" "") +; (gtk_accel_path "/view/view-softproof-black-point-compensation" "") +; (gtk_accel_path "/select/select-menu" "") +; (gtk_accel_path "/plug-in/plug-in-sample-colorize" "") +; (gtk_accel_path "/file/file-open-recent-10" "0") +; (gtk_accel_path "/tools/tools-by-color-select" "o") +; (gtk_accel_path "/context/context-palette-background-previous" "") +; (gtk_accel_path "/tools/tools-force-minimum" "") +; (gtk_accel_path "/channels/channels-color-tag-violet" "") +; (gtk_accel_path "/context/context-swatch-background-next-skip" "") +; (gtk_accel_path "/dockable/dialogs-brush-editor" "") +; (gtk_accel_path "/plug-in/gimp-help-using-simpleobjects" "") +; (gtk_accel_path "/filters/filters-recursive-transform" "") +; (gtk_accel_path "/plug-in/script-fu-add-bevel" "") +; (gtk_accel_path "/dialogs/dialogs-dynamics" "") +; (gtk_accel_path "/plug-in/plug-in-curve-bend" "") +; (gtk_accel_path "/context/context-background-saturation-increase-skip" "") +; (gtk_accel_path "/view/view-scroll-page-up" "") +; (gtk_accel_path "/filters/filters-convolution-matrix" "") +; (gtk_accel_path "/tools/tools-pencil" "n") +; (gtk_accel_path "/filters/filters-levels" "") +; (gtk_accel_path "/layers/layers-color-tag-violet" "") +; (gtk_accel_path "/tools/tools-opacity-increase" "greater") +; (gtk_accel_path "/context/context-brush-radius-decrease-percent" "") +; (gtk_accel_path "/context/context-foreground-red-set" "") +; (gtk_accel_path "/select/select-fill" "") +; (gtk_accel_path "/filters/filters-colorize" "") +; (gtk_accel_path "/view/view-padding-color-dark-check" "") +; (gtk_accel_path "/tools/tools-hardness-maximum" "") +; (gtk_accel_path "/palettes/palettes-copy-location" "") +; (gtk_accel_path "/tool-options/tool-options-save-new-preset" "") +; (gtk_accel_path "/tools/tools-spacing-increase-skip" "") +; (gtk_accel_path "/context/context-gradient-select-previous" "") +; (gtk_accel_path "/layers/layers-new-from-visible" "") +; (gtk_accel_path "/filters/filters-saturation" "") +; (gtk_accel_path "/tool-options/tool-options-popup" "") +; (gtk_accel_path "/tools/tools-crop" "c") +; (gtk_accel_path "/plug-in/plug-in-flame" "") +; (gtk_accel_path "/images/images-popup" "") +; (gtk_accel_path "/context/context-font-select-last" "") +; (gtk_accel_path "/vectors/vectors-new" "") +; (gtk_accel_path "/filters/filters-posterize" "") +; (gtk_accel_path "/filters/filters-map-menu" "") +; (gtk_accel_path "/dockable/dockable-view-type-list" "") +; (gtk_accel_path "/filters/filters-slic" "") +; (gtk_accel_path "/view/view-rotate-reset" "exclam") +; (gtk_accel_path "/filters/filters-shift" "") +; (gtk_accel_path "/drawable/drawable-rotate-90" "") +; (gtk_accel_path "/plug-in/plug-in-lighting" "") +; (gtk_accel_path "/tools/tools-mypaint-brush" "y") +; (gtk_accel_path "/channels/channels-color-tag-menu" "") +; (gtk_accel_path "/layers/layers-merge-down" "") +; (gtk_accel_path "/dialogs/dialogs-tips" "") +; (gtk_accel_path "/layers/layers-mode-last" "") +; (gtk_accel_path "/tools/tools-warp-effect-hardness-set" "") +; (gtk_accel_path "/layers/layers-alpha-add" "") +; (gtk_accel_path "/plug-in/python-layerfx-drop-shadow" "") +; (gtk_accel_path "/context/context-palette-foreground-previous-skip" "") +; (gtk_accel_path "/context/context-tool-select-set" "") +; (gtk_accel_path "/plug-in/plug-in-color-enhance" "") +; (gtk_accel_path "/filters/filters-dilate" "") +; (gtk_accel_path "/context/context-palette-background-last" "") +; (gtk_accel_path "/image/image-mode-menu" "") +; (gtk_accel_path "/vectors/vectors-raise" "") +; (gtk_accel_path "/vectors/vectors-selection-to-vectors" "") +; (gtk_accel_path "/edit/edit-named-copy-visible" "") +; (gtk_accel_path "/dockable/dialogs-brushes" "b") +; (gtk_accel_path "/drawable/drawable-rotate-180" "") +; (gtk_accel_path "/filters/filters-decor-menu" "") +; (gtk_accel_path "/layers/layers-composite-mode-menu" "") +; (gtk_accel_path "/tools/tools-airbrush-rate-decrease" "") +; (gtk_accel_path "/image/image-convert-gamma" "") +; (gtk_accel_path "/context/context-foreground-hue-increase-skip" "") +; (gtk_accel_path "/channels/channels-popup" "") +; (gtk_accel_path "/channels/channels-color-tag-yellow" "") +; (gtk_accel_path "/dockable/dockable-preview-size-small" "") +; (gtk_accel_path "/image/image-guides-menu" "") +; (gtk_accel_path "/tools/tools-force-increase" "") +; (gtk_accel_path "/layers/layers-alpha-selection-intersect" "") +; (gtk_accel_path "/context/context-brush-select-next" "") +; (gtk_accel_path "/filters/filters-waterpixels" "") +; (gtk_accel_path "/context/context-brush-spacing-increase" "") +; (gtk_accel_path "/dialogs/dialogs-action-search" "slash") +; (gtk_accel_path "/layers/layers-select-next" "Page_Down") +; (gtk_accel_path "/tools/tools-rotate-arbitrary" "") +; (gtk_accel_path "/layers/layers-opacity-decrease-skip" "") +; (gtk_accel_path "/view/view-zoom-16-1" "5") +; (gtk_accel_path "/plug-in/gimp-help-concepts-usage" "") +; (gtk_accel_path "/debug/debug-dump-keyboard-shortcuts" "") +; (gtk_accel_path "/image/image-color-profile-discard" "") +; (gtk_accel_path "/filters/filters-mean-curvature-blur" "") +; (gtk_accel_path "/layers/layers-color-tag-yellow" "") +; (gtk_accel_path "/context/context-brush-aspect-decrease-skip" "") +; (gtk_accel_path "/dock/dock-move-to-screen-:0.0" "") +; (gtk_accel_path "/filters/filters-animation-menu" "") +; (gtk_accel_path "/filters/filters-noise-reduction" "") +; (gtk_accel_path "/dialogs/dialogs-gradients" "g") +; (gtk_accel_path "/tools/tools-object-1-previous" "") +; (gtk_accel_path "/image/image-duplicate" "d") +; (gtk_accel_path "/tool-options/tool-options-reset-all" "") +; (gtk_accel_path "/dockable/dialogs-patterns" "p") +; (gtk_accel_path "/view/view-scroll-right-border" "") +; (gtk_accel_path "/edit/edit-paste" "v") +; (gtk_accel_path "/context/context-palette-foreground-next" "") +; (gtk_accel_path "/channels/channels-color-tag-red" "") +; (gtk_accel_path "/filters/filters-mono-mixer" "") +; (gtk_accel_path "/context/context-font-select-set" "") +; (gtk_accel_path "/filters/filters-spiral" "") +; (gtk_accel_path "/plug-in/plug-in-unit-editor" "") +; (gtk_accel_path "/tools/tools-angle-decrease-skip" "") +; (gtk_accel_path "/tools/tools-airbrush-flow-decrease-skip" "") +; (gtk_accel_path "/vectors/vectors-select-bottom" "") +; (gtk_accel_path "/context/context-foreground-value-set" "") +; (gtk_accel_path "/debug/debug-dump-items" "") +; (gtk_accel_path "/view/view-scroll-up" "") +; (gtk_accel_path "/plug-in/python-layer-fx-bevel-emboss" "") +; (gtk_accel_path "/plug-in/gimp-help-using-selections" "") +; (gtk_accel_path "/plug-in/plug-in-cml-explorer" "") +; (gtk_accel_path "/select/select-stroke" "") +; (gtk_accel_path "/context/context-foreground-saturation-decrease-skip" "") +; (gtk_accel_path "/filters/filters-snn-mean" "") +; (gtk_accel_path "/drawable/drawable-visible" "") +; (gtk_accel_path "/image/image-metadata-menu" "") +; (gtk_accel_path "/channels/channels-select-previous" "") +; (gtk_accel_path "/context/context-brush-angle-increase" "") +; (gtk_accel_path "/plug-in/python-layerfx-pattern-overlay" "") +; (gtk_accel_path "/tools/tools-hardness-set" "") +; (gtk_accel_path "/tools/tools-object-1-last" "") +; (gtk_accel_path "/layers/layers-color-tag-menu" "") +; (gtk_accel_path "/context/context-background-value-increase-skip" "") +; (gtk_accel_path "/plug-in/python-layerfx-inner-shadow" "") +; (gtk_accel_path "/view/view-display-intent-relative-colorimetric" "") +; (gtk_accel_path "/tools/tools-aspect-set-to-default" "") +; (gtk_accel_path "/filters/filters-supernova" "") +; (gtk_accel_path "/image/image-transform-menu" "") +; (gtk_accel_path "/view/view-shrink-wrap" "j") +; (gtk_accel_path "/context/context-swatch-foreground-set" "") +; (gtk_accel_path "/plug-in/file-pat-save-internal" "") +; (gtk_accel_path "/context/context-foreground-red-decrease" "") +; (gtk_accel_path "/view/view-zoom-8-1" "4") +; (gtk_accel_path "/context/context-brush-radius-minimum" "") +; (gtk_accel_path "/filters/filters-sepia" "") +; (gtk_accel_path "/debug/debug-dump-attached-data" "") +; (gtk_accel_path "/context/context-brush-hardness-increase" "") +; (gtk_accel_path "/context/context-foreground-saturation-set" "") +; (gtk_accel_path "/view/view-softproof-gamut-check" "") +; (gtk_accel_path "/dialogs/dialogs-images" "") +; (gtk_accel_path "/plug-in/python-layer-fx-satin" "") +; (gtk_accel_path "/layers/layers-mask-selection-intersect" "") +(gtk_accel_path "/plug-in/file-print-gtk" "p") +; (gtk_accel_path "/filters/filters-reshow" "f") +; (gtk_accel_path "/dialogs/dialogs-gradient-editor" "") +; (gtk_accel_path "/view/view-move-to-screen-menu" "") +; (gtk_accel_path "/view/view-open-display" "") +; (gtk_accel_path "/plug-in/file-tiff-save2" "") +; (gtk_accel_path "/layers/layers-linked" "") +; (gtk_accel_path "/tool-options/tool-options-save-preset-menu" "") +; (gtk_accel_path "/context/context-brush-spacing-maximum" "") +; (gtk_accel_path "/images/images-delete" "") +; (gtk_accel_path "/file/file-copy-location" "") +; (gtk_accel_path "/dialogs/dialogs-buffers" "") +; (gtk_accel_path "/layers/layers-menu" "") +; (gtk_accel_path "/tools/tools-aspect-minimum" "") +; (gtk_accel_path "/context/context-foreground-green-decrease-skip" "") +; (gtk_accel_path "/context/context-palette-background-previous-skip" "") +; (gtk_accel_path "/edit/edit-paste-as-new-image" "v") +; (gtk_accel_path "/filters/filters-stress" "") +; (gtk_accel_path "/dialogs/dialogs-patterns" "p") +; (gtk_accel_path "/filters/filters-edge-laplace" "") +; (gtk_accel_path "/context/context-background-green-decrease" "") +; (gtk_accel_path "/view/view-rotate-90" "") +; (gtk_accel_path "/filters/filters-ripple" "") +; (gtk_accel_path "/plug-in/plug-in-ifscompose" "") +; (gtk_accel_path "/context/context-brush-spacing-decrease" "") +; (gtk_accel_path "/tools/tools-airbrush" "a") +; (gtk_accel_path "/context/context-background-hue-increase-skip" "") +; (gtk_accel_path "/view/view-softproof-intent-menu" "") +; (gtk_accel_path "/filters/filters-sinus" "") +; (gtk_accel_path "/filters/filters-c2g" "") +; (gtk_accel_path "/plug-in/plug-in-metadata-viewer" "") +; (gtk_accel_path "/tool-options/tool-options-edit-preset-menu" "") +; (gtk_accel_path "/view/view-close" "w") +; (gtk_accel_path "/layers/layers-edit-text" "") +; (gtk_accel_path "/context/context-brush-shape-diamond" "") +; (gtk_accel_path "/tools/tools-force-decrease-skip" "") +; (gtk_accel_path "/plug-in/gimp-online-main-web-site" "") +; (gtk_accel_path "/vectors/vectors-edit-attributes" "") +; (gtk_accel_path "/context/context-opacity-increase" "") +; (gtk_accel_path "/dockable/dialogs-tool-options" "") +; (gtk_accel_path "/context/context-brush-spacing-set" "") +; (gtk_accel_path "/context/context-pattern-select-last" "") +; (gtk_accel_path "/filters/filters-distance-map" "") +; (gtk_accel_path "/tools/tools-free-select" "f") +; (gtk_accel_path "/context/context-foreground-green-minimum" "") +; (gtk_accel_path "/file/file-open-recent-09" "9") +; (gtk_accel_path "/dockable/dialogs-fonts" "") +; (gtk_accel_path "/context/context-tool-select-next" "") +; (gtk_accel_path "/layers/layers-select-top" "Home") +; (gtk_accel_path "/channels/channels-selection-subtract" "") +; (gtk_accel_path "/file/file-open-recent-08" "8") +; (gtk_accel_path "/context/context-background-hue-increase" "") +; (gtk_accel_path "/context/context-colormap-background-next-skip" "") +; (gtk_accel_path "/context/context-brush-spikes-decrease-skip" "") +; (gtk_accel_path "/dialogs/dialogs-mypaint-brushes" "") +; (gtk_accel_path "/context/context-font-select-previous" "") +; (gtk_accel_path "/file/file-open-recent-07" "7") +; (gtk_accel_path "/plug-in/plug-in-film" "") +; (gtk_accel_path "/layers/layers-anchor" "h") +; (gtk_accel_path "/view/view-new" "") +; (gtk_accel_path "/edit/edit-redo" "y") +; (gtk_accel_path "/context/context-brush-angle-decrease" "") +; (gtk_accel_path "/file/file-open-recent-06" "6") +; (gtk_accel_path "/images/images-new-view" "") +; (gtk_accel_path "/plug-in/plug-in-goat-exercise" "") +; (gtk_accel_path "/plug-in/file-gbr-save-internal" "") +; (gtk_accel_path "/file/file-open-recent-05" "5") +; (gtk_accel_path "/edit/edit-paste-in-place" "v") +; (gtk_accel_path "/vectors/vectors-selection-add" "") +; (gtk_accel_path "/tools/tools-aspect-increase-percent" "") +; (gtk_accel_path "/plug-in/plug-in-reset-all" "") +; (gtk_accel_path "/layers/layers-edit-attributes" "") +; (gtk_accel_path "/drawable/drawable-lock-content" "") +; (gtk_accel_path "/plug-in/gimp-help-using-docks" "") +; (gtk_accel_path "/filters/filters-hue-saturation" "") +; (gtk_accel_path "/context/context-foreground-red-decrease-skip" "") +; (gtk_accel_path "/filters/filters-lens-distortion" "") +; (gtk_accel_path "/image/image-convert-indexed" "") +; (gtk_accel_path "/filters/filters-tile-glass" "") +; (gtk_accel_path "/plug-in/script-fu-lava" "") +; (gtk_accel_path "/file/file-open-recent-04" "4") +; (gtk_accel_path "/dock/dock-auto-follow-active" "") +; (gtk_accel_path "/plug-in/script-fu-spyrogimp" "") +; (gtk_accel_path "/palette-editor/palette-editor-edit-active" "") +; (gtk_accel_path "/context/context-foreground-saturation-maximum" "") +; (gtk_accel_path "/image/colors-map-menu" "") +; (gtk_accel_path "/context/context-brush-radius-set" "") +; (gtk_accel_path "/file/file-open-recent-03" "3") +; (gtk_accel_path "/context/context-brush-hardness-decrease" "") +; (gtk_accel_path "/windows/windows-show-display-previous" "Tab") +; (gtk_accel_path "/view/view-softproof-intent-relative-colorimetric" "") +; (gtk_accel_path "/tools/tools-force-set-to-default" "") +; (gtk_accel_path "/file/file-open-recent-02" "2") +; (gtk_accel_path "/drawable/drawable-equalize" "") +; (gtk_accel_path "/plug-in/python-layer-fx-drop-shadow" "") +; (gtk_accel_path "/context/context-font-select-first" "") +; (gtk_accel_path "/plug-in/plug-in-animationunoptimize" "") +; (gtk_accel_path "/layers/layers-mask-selection-replace" "") +; (gtk_accel_path "/file/file-open-recent-01" "1") +; (gtk_accel_path "/image/image-crop-to-content" "") +; (gtk_accel_path "/filters/filters-polar-coordinates" "") +; (gtk_accel_path "/context/context-background-hue-minimum" "") +; (gtk_accel_path "/tools/tools-rotate" "r") +; (gtk_accel_path "/image/image-convert-double" "") +; (gtk_accel_path "/view/view-zoom-1-8" "4") +; (gtk_accel_path "/context/context-background-green-decrease-skip" "") +; (gtk_accel_path "/edit/edit-fill-fg" "comma") +; (gtk_accel_path "/tools/tools-scale" "s") +; (gtk_accel_path "/context/context-brush-select-last" "") +; (gtk_accel_path "/plug-in/script-fu-distress-selection" "") +; (gtk_accel_path "/edit/undo-popup" "") +; (gtk_accel_path "/layers/layers-mode-first" "") +; (gtk_accel_path "/view/view-zoom-1-16" "5") +; (gtk_accel_path "/dockable/dockable-add-tab-menu" "") +; (gtk_accel_path "/context/context-tool-select-previous" "") +; (gtk_accel_path "/channels/channels-color-tag-gray" "") +; (gtk_accel_path "/dockable/dialogs-error-console" "") +; (gtk_accel_path "/context/context-foreground-value-maximum" "") +; (gtk_accel_path "/channels/channels-raise" "") +; (gtk_accel_path "/context/context-background-red-set" "") +; (gtk_accel_path "/plug-in/script-fu-perspective-shadow" "") +; (gtk_accel_path "/context/context-opacity-decrease" "") +; (gtk_accel_path "/filters/filters-cubism" "") +; (gtk_accel_path "/filters/filters-motion-blur-circular" "") +; (gtk_accel_path "/context/context-gradient-menu" "") +; (gtk_accel_path "/plug-in/plug-in-max-rgb" "") +; (gtk_accel_path "/image/image-resize" "") +; (gtk_accel_path "/filters/filters-normal-map" "") +; (gtk_accel_path "/vectors/vectors-color-tag-green" "") +; (gtk_accel_path "/plug-in/gimp-online-docs-web-site" "") +; (gtk_accel_path "/view/view-zoom-1-4" "3") +; (gtk_accel_path "/vectors/vectors-copy" "") +; (gtk_accel_path "/context/context-palette-foreground-last" "") +; (gtk_accel_path "/tools/tools-airbrush-rate-decrease-skip" "") +; (gtk_accel_path "/tools/tools-shear" "h") +; (gtk_accel_path "/context/context-background-green-minimum" "") +; (gtk_accel_path "/view/view-snap-to-canvas" "") +; (gtk_accel_path "/view/view-scroll-left-border" "") +; (gtk_accel_path "/plug-in/python-layerfx-bevel-emboss" "") +; (gtk_accel_path "/filters/filters-pixelize" "") +; (gtk_accel_path "/dock/dock-close" "") +; (gtk_accel_path "/windows/windows-hide-docks" "Tab") +; (gtk_accel_path "/view/view-show-layer-boundary" "") +; (gtk_accel_path "/file/file-save" "s") +; (gtk_accel_path "/layers/layers-composite-space-rgb-linear" "") +; (gtk_accel_path "/context/context-background-hue-decrease" "") +; (gtk_accel_path "/windows/windows-show-display-next" "Tab") +; (gtk_accel_path "/filters/filters-noise-slur" "") +; (gtk_accel_path "/view/view-zoom-1-2" "2") +; (gtk_accel_path "/image/image-menu" "") +; (gtk_accel_path "/plug-in/plug-in-photocopy" "") +; (gtk_accel_path "/edit/edit-paste-as-menu" "") +; (gtk_accel_path "/tools/tools-select-menu" "") +; (gtk_accel_path "/view/view-zoom-1-1" "1") +; (gtk_accel_path "/plug-in/plug-in-warp" "") +; (gtk_accel_path "/dockable/dockable-preview-size-huge" "") +; (gtk_accel_path "/dockable/dockable-tab-style-automatic" "") +; (gtk_accel_path "/layers/layers-mask-edit" "") +; (gtk_accel_path "/windows/windows-show-tabs" "") +; (gtk_accel_path "/layers/layers-mask-add-last-values" "") +; (gtk_accel_path "/plug-in/file-raw-save" "") +; (gtk_accel_path "/palettes/palettes-refresh" "") +; (gtk_accel_path "/image/image-merge-layers" "m") +; (gtk_accel_path "/filters/filters-noise-perlin" "") +; (gtk_accel_path "/plug-in/plug-in-destripe" "") +; (gtk_accel_path "/dockable/dockable-tab-style-icon-name" "") +; (gtk_accel_path "/dockable/dockable-preview-size-large" "") +; (gtk_accel_path "/layers/layers-color-tag-green" "") +; (gtk_accel_path "/context/context-background-red-decrease-skip" "") +; (gtk_accel_path "/tools/tools-size-decrease-skip" "bracketleft") +; (gtk_accel_path "/dockable/dialogs-selection-editor" "") +; (gtk_accel_path "/quick-mask/quick-mask-configure" "") +; (gtk_accel_path "/filters/filters-cartoon" "") +; (gtk_accel_path "/plug-in/plug-in-fractalexplorer" "") +; (gtk_accel_path "/view/view-softproof-profile" "") +; (gtk_accel_path "/view/view-rotate-270" "") +; (gtk_accel_path "/vectors/vectors-lower-to-bottom" "") +; (gtk_accel_path "/context/context-colormap-background-set" "") +; (gtk_accel_path "/layers/layers-color-tag-gray" "") +; (gtk_accel_path "/tools/tools-paintbrush-size-set" "") +; (gtk_accel_path "/dock/dock-show-image-menu" "") +; (gtk_accel_path "/context/context-brush-hardness-increase-skip" "") +; (gtk_accel_path "/plug-in/script-fu-selection-to-pattern" "") +; (gtk_accel_path "/plug-in/script-fu-carve-it" "") +; (gtk_accel_path "/tools/tools-eraser" "e") +; (gtk_accel_path "/plug-in/plug-in-plug-in-details" "") +; (gtk_accel_path "/context/context-brush-select-previous" "") +; (gtk_accel_path "/context/context-palette-background-set" "") +; (gtk_accel_path "/plug-in/python-layer-fx-stroke" "") +; (gtk_accel_path "/select/select-float" "l") +; (gtk_accel_path "/context/context-gradient-select-next" "") +; (gtk_accel_path "/filters/filters-grid" "") +; (gtk_accel_path "/tools/tools-size-decrease-percent" "") +; (gtk_accel_path "/layers/layers-visible" "") +; (gtk_accel_path "/dockable/dialogs-sample-points" "") +; (gtk_accel_path "/context/context-background-blue-decrease-skip" "") +; (gtk_accel_path "/view/view-softproof-intent-saturation" "") +; (gtk_accel_path "/view/view-zoom-minimum" "") +; (gtk_accel_path "/tools/tools-hardness-decrease-skip" "") +; (gtk_accel_path "/filters/filters-rgb-clip" "") +; (gtk_accel_path "/context/context-background-value-maximum" "") +; (gtk_accel_path "/layers/layers-lower-to-bottom" "") +; (gtk_accel_path "/tools/tools-force-set" "") +; (gtk_accel_path "/filters/filters-wind" "") +; (gtk_accel_path "/context/context-foreground-red-minimum" "") +; (gtk_accel_path "/debug/debug-dump-managers" "") +; (gtk_accel_path "/context/context-tool-select-last" "") +; (gtk_accel_path "/filters/filters-displace" "") +; (gtk_accel_path "/filters/filters-enhance-menu" "") +; (gtk_accel_path "/filters/filters-engrave" "") +; (gtk_accel_path "/tools/tools-object-2-next" "") +; (gtk_accel_path "/plug-in/python-layer-fx-inner-shadow" "") +; (gtk_accel_path "/view/view-show-guides" "t") +; (gtk_accel_path "/vectors/vectors-color-tag-red" "") +; (gtk_accel_path "/vectors/vectors-selection-from-vectors" "v") +; (gtk_accel_path "/view/view-zoom-other" "") +; (gtk_accel_path "/image/image-convert-u32" "") +; (gtk_accel_path "/dockable/dialogs-symmetry" "") +; (gtk_accel_path "/context/context-swatch-background-previous" "") +; (gtk_accel_path "/select/select-feather" "") +; (gtk_accel_path "/filters/filters-motion-blur-zoom" "") +; (gtk_accel_path "/dialogs/dialogs-tool-presets" "") +; (gtk_accel_path "/vectors/vectors-duplicate" "") +; (gtk_accel_path "/view/view-display-intent-saturation" "") +; (gtk_accel_path "/tools/tools-foreground-select" "") diff --git a/2.10/palettes/gaga-g.gpl b/2.10/palettes/gaga-g.gpl new file mode 100644 index 0000000..cce0eea --- /dev/null +++ b/2.10/palettes/gaga-g.gpl @@ -0,0 +1,11 @@ +GIMP Palette +Name: gaga-g +Columns: 7 +# +187 239 222 Untitled + 67 208 156 + 48 151 109 Untitled +241 124 61 Untitled +204 231 190 Untitled +108 108 108 Untitled + 16 16 16 Untitled diff --git a/2.10/parasiterc b/2.10/parasiterc new file mode 100644 index 0000000..d073f2d --- /dev/null +++ b/2.10/parasiterc @@ -0,0 +1,8 @@ +# GIMP parasiterc +# +# This file will be entirely rewritten each time you exit. + +(parasite "jpeg-save-defaults" 1 46 "\67\60\56\63\64\64\70\62\70\40\60\56\60\60\60\60\60\60\40\61\40\61\40\62\40\61\40\60\40\60\40\61\40\61\40\61\40\60\40\60\40\60\40\60\40\61") + + +# end of parasiterc diff --git a/2.10/plug-ins/layerfx/layerfx.py b/2.10/plug-ins/layerfx/layerfx.py new file mode 100755 index 0000000..beda865 --- /dev/null +++ b/2.10/plug-ins/layerfx/layerfx.py @@ -0,0 +1,6568 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# GIMP Layer Effects +# Copyright (c) 2008 Jonathan Stipe +# JonStipe@prodigy.net + +# --------------------------------------------------------------------- + +# 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 . + +import gimp, gimpplugin, math, re +from gimpenums import * +pdb = gimp.pdb +import gtk, gimpui, gimpcolor, gobject +from gimpshelf import shelf + +class layerfx_base(object): + mode_list = (NORMAL_MODE, DISSOLVE_MODE, MULTIPLY_MODE, DIVIDE_MODE, SCREEN_MODE, OVERLAY_MODE, DODGE_MODE, BURN_MODE, HARDLIGHT_MODE, SOFTLIGHT_MODE, GRAIN_EXTRACT_MODE, GRAIN_MERGE_MODE, DIFFERENCE_MODE, ADDITION_MODE, SUBTRACT_MODE, DARKEN_ONLY_MODE, LIGHTEN_ONLY_MODE, HUE_MODE, SATURATION_MODE, COLOR_MODE, VALUE_MODE) + previewLayer = None + hiddenLayer = None + + def cond(self, b, t = 1, f = 0): + if b == True: + return t + else: + return f + + def get_layer_pos(self, layer): + for i, v in enumerate(self.img.layers): + if layer == v: + return i + return -1 + + def add_under_layer(self, newlayer, oldlayer): + self.img.add_layer(newlayer, self.get_layer_pos(oldlayer) + 1) + + def add_over_layer(self, newlayer, oldlayer): + self.img.add_layer(newlayer, self.get_layer_pos(oldlayer)) + + def layer_exists(self, layer): + return layer != None and layer in self.img.layers + + def set_hidden_layer(self, layer): + if self.hiddenLayer == None: + self.hiddenLayer = layer + elif type(self.hiddenLayer) == gimp.Layer and self.hiddenLayer != layer: + self.hiddenLayer = [self.hiddenLayer, layer] + elif type(self.hiddenLayer) == list and layer not in self.hiddenLayer: + self.hiddenLayer.append(layer) + layer.visible = 0 + + def unset_hidden_layer(self): + if self.hiddenLayer != None: + if type(self.hiddenLayer) == gimp.Layer and self.layer_exists(self.hiddenLayer): + self.hiddenLayer.visible = 1 + elif type(self.hiddenLayer) == list: + for i in self.hiddenLayer: + if self.layer_exists(i): + i.visible = 1 + self.hiddenLayer = None + + def draw_blurshape(self, drawable, size, initgrowth, sel, invert): + k = initgrowth + currshade = 0 + for i in range(size): + if k > 0: + pdb.gimp_selection_grow(drawable.image, k) + elif k < 0: + pdb.gimp_selection_shrink(drawable.image, abs(k)) + if invert: + currshade = int(round((float(size - (i + 1)) / float(size)) * 255)) + else: + currshade = int(round((float(i + 1) / float(size)) * 255)) + gimp.set_foreground(currshade, currshade, currshade) + if pdb.gimp_selection_is_empty(drawable.image) == 0: + pdb.gimp_edit_fill(drawable, FOREGROUND_FILL) + pdb.gimp_selection_load(sel) + k -= 1 + + def apply_contour(self, drawable, channel, contour): + contourtypes = (0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1) + contours = ((0, 0, 127, 255, 255, 0), + (0, 255, 127, 0, 255, 255), + (0, 64, 94, 74, 150, 115, 179, 179, 191, 255), + (0, 0, 5, 125, 6, 125, 48, 148, 79, 179, 107, 217, 130, 255), + (0, 0, 33, 8, 64, 38, 97, 102, 128, 166, 158, 209, 191, 235, 222, 247, 255, 255), + (0, 0, 28, 71, 87, 166, 194, 240, 255, 255), + (0, 0, 33, 110, 64, 237, 97, 240, 128, 138, 158, 33, 191, 5, 222, 99, 255, 255), + (0, 0, 33, 74, 64, 219, 97, 186, 128, 0, 158, 176, 191, 201, 222, 3, 255, 255), + (3, 255, 54, 99, 97, 107, 179, 153, 252, 0), + (0, 5, 9, 13, 16, 19, 22, 25, 27, 29, 30, 32, 33, 34, 35, 36, 38, 39, 40, 41, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 55, 56, 56, 57, 57, 58, 58, 59, 59, 59, 60, 60, 60, 61, 61, 61, 61, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, 64, 64, 64, 64, 64, 71, 75, 78, 81, 84, 86, 89, 91, 93, 95, 96, 98, 99, 101, 102, 103, 104, 105, 107, 107, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 119, 120, 121, 121, 122, 123, 123, 123, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 125, 125, 125, 125, 125, 125, 125, 125, 130, 134, 137, 141, 145, 148, 151, 153, 156, 158, 160, 162, 163, 165, 166, 167, 168, 170, 171, 171, 172, 173, 174, 175, 176, 177, 178, 178, 179, 180, 181, 181, 182, 183, 183, 184, 184, 185, 185, 186, 186, 187, 187, 188, 188, 189, 189, 189, 189, 190, 190, 190, 190, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 193, 194, 196, 197, 198, 200, 201, 203, 204, 205, 207, 208, 209, 211, 212, 213, 214, 215, 217, 218, 219, 220, 220, 221, 222, 222, 223, 223, 224, 224, 224, 224, 224, 223, 223, 222, 222, 221, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, 206, 205, 204, 203, 202, 200, 199, 198, 197, 196, 194, 194), + (0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 127, 125, 123, 121, 119, 117, 115, 113, 111, 109, 107, 105, 103, 101, 99, 97, 95, 93, 91, 89, 87, 85, 83, 81, 79, 77, 75, 73, 71, 69, 67, 65, 63, 61, 59, 57, 55, 53, 51, 49, 47, 45, 43, 41, 39, 37, 35, 33, 31, 29, 27, 25, 23, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 128, 126, 124, 122, 120, 118, 116, 114, 112, 110, 108, 106, 104, 102, 100, 98, 96, 94, 92, 90, 88, 86, 84, 82, 80, 78, 76, 74, 72, 70, 68, 66, 64, 62, 60, 58, 56, 54, 52, 50, 48, 46, 44, 42, 40, 38, 36, 34, 32, 30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2)) + if contourtypes[contour-1] == 0: + pdb.gimp_curves_spline(drawable, channel, len(contours[contour-1]), contours[contour-1]) + else: + pdb.gimp_curves_explicit(drawable, channel, len(contours[contour-1]), contours[contour-1]) + + def apply_noise(self, drawable, srclayer, noise, uselayer): + noiselayer = gimp.Layer(drawable.image, "%s-noise" % (drawable.name), srclayer.width, srclayer.height, (RGBA_IMAGE, GRAYA_IMAGE)[drawable.image.base_type], 100.0, NORMAL_MODE) + blanklayer = gimp.Layer(drawable.image, "%s-blank" % (drawable.name), srclayer.width, srclayer.height, (RGBA_IMAGE, GRAYA_IMAGE)[drawable.image.base_type], 100.0, NORMAL_MODE) + self.add_over_layer(blanklayer, srclayer) + self.add_over_layer(noiselayer, blanklayer) + noiselayer.set_offsets(srclayer.offsets[0], srclayer.offsets[1]) + blanklayer.set_offsets(srclayer.offsets[0], srclayer.offsets[1]) + pdb.gimp_selection_none(drawable.image) + gimp.set_foreground(0, 0, 0) + pdb.gimp_edit_fill(noiselayer, FOREGROUND_FILL) + pdb.gimp_edit_fill(blanklayer, FOREGROUND_FILL) + gimp.set_foreground(255, 255, 255) + if uselayer: + srclayer.add_mask(srclayer.create_mask(ADD_WHITE_MASK)) + pdb.gimp_selection_none(drawable.image) + pdb.gimp_edit_fill(blanklayer, FOREGROUND_FILL) + pdb.plug_in_hsv_noise(drawable.image, noiselayer, 1, 0, 0, 255) + else: + pdb.gimp_selection_load(srclayer.mask) + pdb.gimp_edit_fill(blanklayer, FOREGROUND_FILL) + pdb.gimp_selection_none(drawable.image) + pdb.plug_in_hsv_noise(drawable.image, noiselayer, 1, 0, 0, 255) + noiselayer.mode = OVERLAY_MODE + noiselayer.opacity = noise + noiselayer = pdb.gimp_image_merge_down(drawable.image, noiselayer, EXPAND_AS_NECESSARY) + blanklayer = noiselayer.create_mask(ADD_COPY_MASK) + noiselayer.add_mask(blanklayer) + pdb.gimp_selection_none(drawable.image) + gimp.set_foreground(0, 0, 0) + pdb.gimp_edit_fill(srclayer.mask, FOREGROUND_FILL) + pdb.gimp_channel_combine_masks(srclayer.mask, blanklayer, CHANNEL_OP_REPLACE, 0, 0) + drawable.image.remove_layer(noiselayer) + + def removePreviews(self): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + self.previewLayer = None + self.unset_hidden_layer() + gimp.displays_flush() + if pdb.gimp_image_undo_is_enabled(self.img) == 0: + pdb.gimp_image_undo_thaw(self.img) + + def make_label(self, text, show = True): + label = gtk.Label(text) + label.set_use_underline(True) + label.set_alignment(1.0, 0.5) + if show: + label.show() + return label + + def make_combo_box(self, *vals): + list_vals = [] + for i, v in enumerate(vals): + list_vals.append(v) + list_vals.append(i) + box = gimpui.IntComboBox(tuple(list_vals)) + return box + + def make_blend_mode_box(self): + return gimpui.IntComboBox(( + "Normal", NORMAL_MODE, + "Dissolve", DISSOLVE_MODE, + "Multiply", MULTIPLY_MODE, + "Divide", DIVIDE_MODE, + "Screen", SCREEN_MODE, + "Overlay", OVERLAY_MODE, + "Dodge", DODGE_MODE, + "Burn", BURN_MODE, + "Hard Light", HARDLIGHT_MODE, + "Soft Light", SOFTLIGHT_MODE, + "Grain Extract", GRAIN_EXTRACT_MODE, + "Grain Merge", GRAIN_MERGE_MODE, + "Difference", DIFFERENCE_MODE, + "Addition", ADDITION_MODE, + "Subtract", SUBTRACT_MODE, + "Darken Only", DARKEN_ONLY_MODE, + "Lighten Only", LIGHTEN_ONLY_MODE, + "Hue", HUE_MODE, + "Saturation", SATURATION_MODE, + "Color", COLOR_MODE, + "Value", VALUE_MODE + )) + + def make_contour_box(self): + return self.make_combo_box( + "Linear", + "Cone", + "Cone - Inverted", + "Cove - Deep", + "Cove-Shallow", + "Gaussian", + "Half Round", + "Ring", + "Ring - Double", + "Rolling Slope - Descending", + "Rounded Steps", + "Sawtooth 1" + ) + + def make_gradient_type_box(self): + return self.make_combo_box( + "Linear", + "Bi-linear", + "Radial", + "Square", + "Conical (sym)", + "Conical (asym)", + "Shaped (angular)", + "Shaped (spherical)", + "Shaped (dimpled)", + "Spiral (cw)", + "Spiral (ccw)" + ) + + def make_gradient_repeat_box(self): + return self.make_combo_box("None", "Sawtooth Wave", "Triangular Wave") + + def make_interpolation_box(self): + return self.make_combo_box("None", "Linear", "Cubic", "Sinc (Lanczos3)") + + def make_spinner(self, init, min, max, step, page, digits, show = True): + controls = { + "adj": gtk.Adjustment(init, min, max, step, page), + "spinner": gtk.SpinButton() + } + controls["spinner"].set_adjustment(controls["adj"]) + controls["spinner"].set_digits(digits) + if show: + controls["spinner"].show() + return controls + + def make_slider_and_spinner(self, init, min, max, step, page, digits, show = True): + controls = { + "adj": gtk.Adjustment(init, min, max, step, page), + "slider": gtk.HScale(), + "spinner": gtk.SpinButton() + } + controls["slider"].set_adjustment(controls["adj"]) + controls["slider"].set_draw_value(False) + controls["spinner"].set_adjustment(controls["adj"]) + controls["spinner"].set_digits(digits) + if show: + controls["slider"].show() + controls["spinner"].show() + return controls + + def show_error_msg(self, msg, e): + origMsgHandler = pdb.gimp_message_get_handler() + pdb.gimp_message_set_handler(ERROR_CONSOLE) + pdb.gimp_message("Error: %s" % (msg)) + pdb.gimp_message_set_handler(origMsgHandler) + raise(e(msg)) + + def validatedata(self, img, drawable, *params): + if type(img) != gimp.Image: + self.show_error_msg("Argument 1 is not an image.", TypeError) + return False + elif not img.base_type in (RGB, GRAY): + self.show_error_msg("Argument 1 must be of type RGB or GRAY.", ValueError) + return False + elif type(drawable) != gimp.Layer: + self.show_error_msg("Argument 2 is not a layer.", TypeError) + return False + elif drawable not in img.layers: + self.show_error_msg("Layer is not part of image.", ValueError) + return False + else: + for i, v in enumerate(params): + if v[0] == "color": + if type(v[1]) != gimpcolor.RGB: + self.show_error_msg("Argument %s must be of type gimpcolor.RGB." % (i), TypeError) + return False + elif v[0] == "gradient": + if type(v[1]) != str: + self.show_error_msg("Argument %s must be of type string." % (i), TypeError) + return False + elif v[1] not in pdb.gimp_gradients_get_list("")[1]: + self.show_error_msg("Argument %s not found in gradient list." % (i), ValueError) + return False + elif v[0] == "color/gradient": + if type(v[1]) != gimpcolor.RGB and type(v[1]) != str: + self.show_error_msg("Argument %s must be of type gimpcolor.RGB or string." % (i), TypeError) + return False + elif type(v[1]) == str and v[1] not in pdb.gimp_gradients_get_list("")[1]: + self.show_error_msg("Argument %s not found in gradient list." % (i), ValueError) + return False + elif v[0] == "pattern": + if type(v[1]) != str: + self.show_error_msg("Argument %s must be of type string." % (i), TypeError) + return False + elif v[1] not in pdb.gimp_patterns_get_list("")[1]: + self.show_error_msg("Argument %s not found in pattern list." % (i), ValueError) + return False + elif v[0] == "color/gradientdata/patterndata": + if type(v[1]) != gimpcolor.RGB and type(v[1]) != list and type(v[1]) != tuple: + self.show_error_msg("Argument %s must be of type gimpcolor.RGB, list, or tuple." % (i), TypeError) + return False + elif type(v[1]) == list or type(v[1]) == tuple: + if len(v[1]) == 8: + if type(v[1][0]) != str: + self.show_error_msg("Argument %s[0] must be of type string." % (i), TypeError) + return False + elif v[1][0] not in pdb.gimp_gradients_get_list("")[1]: + self.show_error_msg("Argument %s[0] not found in gradient list." % (i), ValueError) + return False + elif type(v[1][1]) != int: + self.show_error_msg("Argument %s[1] must be of type int." % (i), TypeError) + return False + elif v[1][1] < 0 or v[1][1] > 11: + self.show_error_msg("Argument %s[1] is out of range (must be between 0 and 11)." % (i), ValueError) + return False + elif type(v[1][2]) != int: + self.show_error_msg("Argument %s[2] must be of type int." % (i), TypeError) + return False + elif v[1][2] < 0 or v[1][2] > 3: + self.show_error_msg("Argument %s[2] is out of range (must be between 0 and 3)." % (i), ValueError) + return False + elif type(v[1][3]) != int: + self.show_error_msg("Argument %s[3] must be of type int." % (i), TypeError) + return False + elif v[1][3] < 0 or v[1][3] > 1: + self.show_error_msg("Argument %s[3] is out of range (must be between 0 and 1)." % (i), ValueError) + return False + elif type(v[1][4]) != float: + self.show_error_msg("Argument %s[4] must be of type float." % (i), TypeError) + return False + elif v[1][4] < 0.0 or v[1][4] > img.width: + self.show_error_msg("Argument %s[4] is out of range (must be between 0 and %s)." % (i, img.width), ValueError) + return False + elif type(v[1][5]) != float: + self.show_error_msg("Argument %s[5] must be of type float." % (i), TypeError) + return False + elif v[1][5] < 0.0 or v[1][4] > img.height: + self.show_error_msg("Argument %s[5] is out of range (must be between 0 and %s)." % (i, img.height), ValueError) + return False + elif type(v[1][6]) != float: + self.show_error_msg("Argument %s[6] must be of type float." % (i), TypeError) + return False + elif v[1][6] < -180.0 or v[1][6] > 180.0: + self.show_error_msg("Argument %s[6] is out of range (must be between -180 and 180)." % (i), ValueError) + return False + elif type(v[1][7]) != float: + self.show_error_msg("Argument %s[7] must be of type float." % (i), TypeError) + return False + elif v[1][7] < 0.0 or v[1][7] > 262144.0: + self.show_error_msg("Argument %s[7] is out of range (must be between 0 and 262144)." % (i), ValueError) + return False + elif len(v[1]) == 3: + if type(v[1][0]) != str: + self.show_error_msg("Argument %s[0] must be of type string." % (i), TypeError) + return False + elif v[1][0] not in pdb.gimp_patterns_get_list("")[1]: + self.show_error_msg("Argument %s[0] not found in pattern list." % (i), ValueError) + return False + elif type(v[1][1]) != float: + self.show_error_msg("Argument %s[1] must be of type float." % (i), TypeError) + return False + elif v[1][1] < 1.0 or v[1][1] > 1000.0: + self.show_error_msg("Argument %s[1] is out of range (must be between 1 and 1000)." % (i), ValueError) + return False + elif type(v[1][2]) != int: + self.show_error_msg("Argument %s[2] must be of type int." % (i), TypeError) + return False + elif v[1][2] < 0 or v[1][2] > 3: + self.show_error_msg("Argument %s[2] is out of range (must be between 0 and 3)." % (i), ValueError) + return False + else: + self.show_error_msg("Argument %s must contain 8 values for a gradient fill, or 3 values for a pattern fill." % (i), ValueError) + return False + elif v[0] == "percent": + if type(v[1]) != float: + self.show_error_msg("Argument %s must be of type float." % (i), TypeError) + return False + elif v[1] < 0.0 or v[1] > 100.0: + self.show_error_msg("Argument %s is out of range (must be between 0 and 100)." % (i), ValueError) + return False + elif v[0] == "contour": + if type(v[1]) != int: + self.show_error_msg("Argument %s must be of type int." % (i), TypeError) + return False + elif v[1] < 0 or v[1] > 11: + self.show_error_msg("Argument %s is out of range (must be between 0 and 11)." % (i), ValueError) + return False + elif v[0] == "mode": + if type(v[1]) != int: + self.show_error_msg("Argument %s must be of type int." % (i), TypeError) + return False + elif v[1] not in self.mode_list: + self.show_error_msg("Illegal value for argument %s." % (i), ValueError) + return False + elif v[0] == "size": + if type(v[1]) != int: + self.show_error_msg("Argument %s must be of type int." % (i), TypeError) + return False + elif v[1] < 0 or v[1] > 250: + self.show_error_msg("Argument %s is out of range (must be between 0 and 250)." % (i), ValueError) + return False + elif v[0] == "angle": + if type(v[1]) != float: + self.show_error_msg("Argument %s must be of type float." % (i), TypeError) + return False + elif v[1] < -180.0 or v[1] > 180.0: + self.show_error_msg("Argument %s is out of range (must be between -180 and 180)." % (i), ValueError) + return False + elif v[0] == "boolean": + if type(v[1]) != int: + self.show_error_msg("Argument %s must be of type int." % (i), TypeError) + return False + elif v[1] < 0 or v[1] > 1: + self.show_error_msg("Argument %s is out of range (must be between 0 and 1)." % (i), ValueError) + return False + elif v[0] == "intrange": + if type(v[1]) != int: + self.show_error_msg("Argument %s must be of type int." % (i), TypeError) + return False + elif v[1] < v[2] or v[1] > v[3]: + self.show_error_msg("Argument %s is out of range (must be between %s and %s)." % (i, v[2], v[3]), ValueError) + return False + elif v[0] == "floatrange": + if type(v[1]) != float: + self.show_error_msg("Argument %s must be of type float." % (i), TypeError) + return False + elif v[1] < v[2] or v[1] > v[3]: + self.show_error_msg("Argument %s is out of range (must be between %s and %s)." % (i, v[2], v[3]), ValueError) + return False + return True + + def stringToColor(self, string): + matchObj = re.match('RGB \((\d+(?:.\d+)?), (\d+(?:.\d+)?), (\d+(?:.\d+)?), (\d+(?:.\d+)?)\)', string) + if matchObj: + colorlist = matchObj.group(1, 2, 3, 4) + return gimpcolor.RGB(float(colorlist[0]), float(colorlist[1]), float(colorlist[2]), float(colorlist[3])) + else: + return False + + def writeParasite(self, drawable, fxlayer, *controls): + dataList = [] + for i in controls: + if i[0] == "color": + dataList.append(str(i[1].get_color())) + elif i[0] == "gradient": + dataList.append(i[1].get_gradient().encode("string_escape").replace("|", "\\x7c")) + elif i[0] == "pattern": + dataList.append(i[1].get_pattern().encode("string_escape").replace("|", "\\x7c")) + elif i[0] == "intadj": + dataList.append(str(int(round(i[1].get_value())))) + elif i[0] == "floatadj": + dataList.append(str(i[1].get_value())) + elif i[0] == "combobox": + dataList.append(str(i[1].get_active())) + elif i[0] == "modebox": + dataList.append(str(i[1].get_active())) + elif i[0] == "check": + if i[1].get_active(): + dataList.append("1") + else: + dataList.append("0") + elif i[0] == "radio": + for j, v in enumerate(i[1]): + if v.get_active(): + dataList.append(str(j)) + break + data = "|".join(dataList) + fxlayer.attach_new_parasite(self.shelfkey, 0, data) + drawable.attach_new_parasite("%s-fxlayer" % (self.shelfkey), 0, fxlayer.name) + + def writeParasiteRaw(self, drawable, fxlayer, *values): + dataList = [] + for i in values: + if type(i) == str: + dataList.append(i.encode("string_escape").replace("|", "\\x7c")) + else: + dataList.append(str(i)) + data = "|".join(dataList) + fxlayer.attach_new_parasite(self.shelfkey, 0, data) + drawable.attach_new_parasite("%s-fxlayer" % (self.shelfkey), 0, fxlayer.name) + + def readParasite(self, img, drawable, keyname, *keysntypes): + fxlayername = "%s-fxlayer" % (keyname) + if fxlayername in pdb.gimp_drawable_parasite_list(drawable)[1]: + fxlayername = pdb.gimp_drawable_parasite_find(drawable, fxlayername).data + for i in img.layers: + if i.name == fxlayername: + if keyname in pdb.gimp_drawable_parasite_list(i)[1]: + datalist = pdb.gimp_drawable_parasite_find(i, keyname).data.split("|") + keys = [] + vals = [] + for j, v in enumerate(datalist): + keys.append(keysntypes[j][0]) + if keysntypes[j][1] == "color": + vals.append(self.stringToColor(v)) + elif keysntypes[j][1] == "int": + vals.append(int(v)) + elif keysntypes[j][1] == "float": + vals.append(float(v)) + elif keysntypes[j][1] == "string": + vals.append(v.decode("string_escape")) + keys.append("oldid") + vals.append(i) + data = dict(zip(keys, vals)) + return data + else: + return False + else: + return False + + def removeOldLayer(self): + if not hasattr(self, "parasitedata"): + self.parasitedata = self.readParasite(self.img, self.drawable) + if self.parasitedata: + self.img.remove_layer(self.parasitedata["oldid"]) + + def makeDialogButtons(self): + reset_button = gtk.Button("_Reset") + reset_button.connect("clicked", self.resetbutton) + reset_button.show() + if gtk.alternative_dialog_button_order(): + ok_button = self.dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK) + cancel_button = self.dialog.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL) + self.dialog.action_area.add(reset_button) + else: + self.dialog.action_area.add(reset_button) + cancel_button = self.dialog.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL) + ok_button = self.dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK) + ok_button.connect("clicked", self.okbutton) + + def getGradientMeasurements(self, drawoffsetx, drawoffsety, gradienttype, centerx, centery, angle, width): + ang = (angle * -1) * (math.pi / 180.0) + if gradienttype == 0: + offset = ((width / 2.0) * math.cos(ang), (width / 2.0) * math.sin(ang)) + gradstart = (centerx - offset[0] - drawoffsetx, centery - offset[1] - drawoffsety) + gradend = (centerx + offset[0] - drawoffsetx, centery + offset[1] - drawoffsety) + elif gradienttype >= 1 and gradienttype <= 8: + offset = ((width / 2.0) * math.cos(ang), (width / 2.0) * math.sin(ang)) + gradstart = (centerx - drawoffsetx, centery - drawoffsety) + gradend = (centerx + offset[0] - drawoffsetx, centery + offset[1] - drawoffsety) + else: + offset = (width * math.cos(ang), width * math.sin(ang)) + gradstart = (centerx - drawoffsetx, centery - drawoffsety) + gradend = (centerx + offset[0] - drawoffsetx, centery + offset[1] - drawoffsety) + return { "ang": ang, "offset": offset, "start": gradstart, "end": gradend } + +class layerfx_drop_shadow(layerfx_base): + shelfkey = "layerfx-drop-shadow" + + def __init__(self, runmode, img, drawable, color, opacity, contour, noise, mode, spread, size, offsetangle, offsetdist, knockout, merge): + self.origMsgHandler = pdb.gimp_message_get_handler() + pdb.gimp_message_set_handler(ERROR_CONSOLE) + self.img = img + self.drawable = drawable + if runmode == RUN_INTERACTIVE: + self.showDialog() + elif runmode == RUN_NONINTERACTIVE: + if self.validatedata(img, drawable, + ("color", color), + ("percent", opacity), + ("contour", contour), + ("percent", noise), + ("mode", mode), + ("percent", spread), + ("size", size), + ("angle", offsetangle), + ("floatrange", offsetdist, 0.0, 30000.0), + ("boolean", knockout), + ("boolean", merge) + ): + self.removeOldLayer() + fxlayer = self.makeShadow(img, drawable, color, opacity, contour, noise, mode, spread, size, offsetangle, offsetdist, knockout, merge) + if merge == 0: + self.writeParasiteRaw(drawable, fxlayer, color, opacity, contour, noise, mode, spread, size, offsetangle, offsetdist, knockout, merge) + shelf[self.shelfkey] = { + "color": color, + "opacity": opacity, + "contour": contour, + "noise": noise, + "mode": mode, + "spread": spread, + "size": size, + "offsetangle": offsetangle, + "offsetdist": offsetdist, + "knockout": knockout, + "merge": merge + } + elif runmode == RUN_WITH_LAST_VALS and shelf.has_key(self.shelfkey) == 1: + self.removeOldLayer() + fxlayer = self.makeShadow( + img, + drawable, + shelf[self.shelfkey]["color"], + shelf[self.shelfkey]["opacity"], + shelf[self.shelfkey]["contour"], + shelf[self.shelfkey]["noise"], + shelf[self.shelfkey]["mode"], + shelf[self.shelfkey]["spread"], + shelf[self.shelfkey]["size"], + shelf[self.shelfkey]["offsetangle"], + shelf[self.shelfkey]["offsetdist"], + shelf[self.shelfkey]["knockout"], + shelf[self.shelfkey]["merge"] + ) + if shelf[self.shelfkey]["merge"] == 0: + self.writeParasiteRaw(drawable, fxlayer, + shelf[self.shelfkey]["color"], + shelf[self.shelfkey]["opacity"], + shelf[self.shelfkey]["contour"], + shelf[self.shelfkey]["noise"], + shelf[self.shelfkey]["mode"], + shelf[self.shelfkey]["spread"], + shelf[self.shelfkey]["size"], + shelf[self.shelfkey]["offsetangle"], + shelf[self.shelfkey]["offsetdist"], + shelf[self.shelfkey]["knockout"], + shelf[self.shelfkey]["merge"] + ) + else: + pdb.gimp_message("unknown runmode") + pdb.gimp_message_set_handler(self.origMsgHandler) + + def showDialog(self): + self.dialog = gimpui.Dialog("Drop Shadow", "dropshadowdialog") + + self.parasitedata = self.readParasite(self.img, self.drawable) + + self.table = gtk.Table(9, 5, True) + self.table.set_homogeneous(True) + self.table.set_row_spacings(3) + self.table.set_col_spacings(3) + self.table.show() + + self.color_label = self.make_label("_Color:") + self.table.attach(self.color_label, 0, 1, 0, 1) + + self.color_button = gimpui.ColorButton("Shadow Color", 10, 10, gimpcolor.RGB(0, 0, 0, 255)) + if self.parasitedata: + self.color_button.set_color(self.parasitedata["color"]) + elif shelf.has_key(self.shelfkey) == 1: + self.color_button.set_color(shelf[self.shelfkey]["color"]) + self.color_label.set_mnemonic_widget(self.color_button) + self.color_button.show() + self.table.attach(self.color_button, 1, 2, 0, 1) + self.color_button.connect("color-changed", self.preview) + + self.mode_label = self.make_label("_Blend Mode:") + self.table.attach(self.mode_label, 0, 1, 1, 2) + + self.mode_box = self.make_blend_mode_box() + if self.parasitedata: + self.mode_box.set_active(self.parasitedata["mode"]) + elif shelf.has_key(self.shelfkey) == 1: + self.mode_box.set_active(shelf[self.shelfkey]["mode"]) + else: + self.mode_box.set_active(MULTIPLY_MODE) + self.mode_label.set_mnemonic_widget(self.mode_box) + self.mode_box.show() + self.table.attach(self.mode_box, 1, 5, 1, 2) + self.mode_box.connect("changed", self.preview) + + self.opacity_label = self.make_label("_Opacity:") + self.table.attach(self.opacity_label, 0, 1, 2, 3) + + self.opacity_slider = self.make_slider_and_spinner(75.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.opacity_slider["adj"].set_value(self.parasitedata["opacity"]) + elif shelf.has_key(self.shelfkey) == 1: + self.opacity_slider["adj"].set_value(shelf[self.shelfkey]["opacity"]) + self.opacity_label.set_mnemonic_widget(self.opacity_slider["spinner"]) + self.table.attach(self.opacity_slider["slider"], 1, 4, 2, 3) + self.table.attach(self.opacity_slider["spinner"], 4, 5, 2, 3) + self.opacity_slider["adj"].connect("value-changed", self.preview) + + self.angle_label = self.make_label("_Angle:") + self.table.attach(self.angle_label, 0, 1, 3, 4) + + self.angle_slider = self.make_slider_and_spinner(120.0, -180.0, 180.0, 1.0, 10.0, 1) + if self.parasitedata: + self.angle_slider["adj"].set_value(self.parasitedata["offsetangle"]) + elif shelf.has_key(self.shelfkey) == 1: + self.angle_slider["adj"].set_value(shelf[self.shelfkey]["offsetangle"]) + self.angle_label.set_mnemonic_widget(self.angle_slider["spinner"]) + self.table.attach(self.angle_slider["slider"], 1, 4, 3, 4) + self.table.attach(self.angle_slider["spinner"], 4, 5, 3, 4) + self.angle_slider["adj"].connect("value-changed", self.preview) + + self.distance_label = self.make_label("_Distance:") + self.table.attach(self.distance_label, 0, 1, 4, 5) + + self.distance_spinner = self.make_spinner(5.0, 0.0, 30000.0, 1.0, 10.0, 1) + if self.parasitedata: + self.distance_spinner["adj"].set_value(self.parasitedata["offsetdist"]) + elif shelf.has_key(self.shelfkey) == 1: + self.distance_spinner["adj"].set_value(shelf[self.shelfkey]["offsetdist"]) + self.distance_label.set_mnemonic_widget(self.distance_spinner["spinner"]) + self.table.attach(self.distance_spinner["spinner"], 1, 2, 4, 5) + self.distance_spinner["adj"].connect("value-changed", self.preview) + + self.spread_label = self.make_label("_Spread:") + self.table.attach(self.spread_label, 0, 1, 5, 6) + + self.spread_slider = self.make_slider_and_spinner(0.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.spread_slider["adj"].set_value(self.parasitedata["spread"]) + elif shelf.has_key(self.shelfkey) == 1: + self.spread_slider["adj"].set_value(shelf[self.shelfkey]["spread"]) + self.spread_label.set_mnemonic_widget(self.spread_slider["spinner"]) + self.table.attach(self.spread_slider["slider"], 1, 4, 5, 6) + self.table.attach(self.spread_slider["spinner"], 4, 5, 5, 6) + self.spread_slider["adj"].connect("value-changed", self.preview) + + self.size_label = self.make_label("S_ize:") + self.table.attach(self.size_label, 0, 1, 6, 7) + + self.size_slider = self.make_slider_and_spinner(5, 0, 250, 1, 10, 0) + if self.parasitedata: + self.size_slider["adj"].set_value(self.parasitedata["size"]) + elif shelf.has_key(self.shelfkey) == 1: + self.size_slider["adj"].set_value(shelf[self.shelfkey]["size"]) + self.size_label.set_mnemonic_widget(self.size_slider["spinner"]) + self.table.attach(self.size_slider["slider"], 1, 4, 6, 7) + self.table.attach(self.size_slider["spinner"], 4, 5, 6, 7) + self.size_slider["adj"].connect("value-changed", self.preview) + + self.contour_label = self.make_label("Con_tour:") + self.table.attach(self.contour_label, 0, 1, 7, 8) + + self.contour_box = self.make_contour_box() + if self.parasitedata: + self.contour_box.set_active(self.parasitedata["contour"]) + elif shelf.has_key(self.shelfkey) == 1: + self.contour_box.set_active(shelf[self.shelfkey]["contour"]) + else: + self.contour_box.set_active(0) + self.contour_label.set_mnemonic_widget(self.contour_box) + self.contour_box.show() + self.table.attach(self.contour_box, 1, 5, 7, 8) + self.contour_box.connect("changed", self.preview) + + self.noise_label = self.make_label("_Noise:") + self.table.attach(self.noise_label, 0, 1, 8, 9) + + self.noise_slider = self.make_slider_and_spinner(0.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.noise_slider["adj"].set_value(self.parasitedata["noise"]) + elif shelf.has_key(self.shelfkey) == 1: + self.noise_slider["adj"].set_value(shelf[self.shelfkey]["noise"]) + self.noise_label.set_mnemonic_widget(self.noise_slider["spinner"]) + self.table.attach(self.noise_slider["slider"], 1, 4, 8, 9) + self.table.attach(self.noise_slider["spinner"], 4, 5, 8, 9) + self.noise_slider["adj"].connect("value-changed", self.preview) + + self.knockout_check = gtk.CheckButton("Layer _knocks out Drop Shadow") + if self.parasitedata: + if self.parasitedata["knockout"] == 1: + self.knockout_check.set_active(True) + elif shelf.has_key(self.shelfkey) == 1 and shelf[self.shelfkey]["knockout"] == 1: + self.knockout_check.set_active(True) + self.knockout_check.show() + self.knockout_check.connect("toggled", self.preview) + + self.merge_check = gtk.CheckButton("_Merge with layer") + if self.parasitedata: + if self.parasitedata["merge"] == 1: + self.merge_check.set_active(True) + elif shelf.has_key(self.shelfkey) == 1 and shelf[self.shelfkey]["merge"] == 1: + self.merge_check.set_active(True) + self.merge_check.show() + self.merge_check.connect("toggled", self.preview) + + self.preview_check = gtk.CheckButton("_Preview") + self.preview_check.show() + self.preview_check.connect("toggled", self.preview) + + self.dialog.vbox.hbox1 = gtk.HBox(False, 7) + self.dialog.vbox.hbox1.show() + self.dialog.vbox.pack_start(self.dialog.vbox.hbox1, True, True, 7) + self.dialog.vbox.hbox1.pack_start(self.table, True, True, 7) + self.dialog.vbox.hbox2 = gtk.HBox(False, 7) + self.dialog.vbox.hbox2.show() + self.dialog.vbox.add(self.dialog.vbox.hbox2) + self.dialog.vbox.hbox2.pack_start(self.knockout_check, True, True, 10) + self.dialog.vbox.hbox3 = gtk.HBox(False, 7) + self.dialog.vbox.hbox3.show() + self.dialog.vbox.add(self.dialog.vbox.hbox3) + self.dialog.vbox.hbox3.pack_start(self.merge_check, True, True, 10) + self.dialog.vbox.hbox4 = gtk.HBox(False, 7) + self.dialog.vbox.hbox4.show() + self.dialog.vbox.add(self.dialog.vbox.hbox4) + self.dialog.vbox.hbox4.pack_start(self.preview_check, True, True, 10) + + self.makeDialogButtons() + + self.dialog.show() + self.dialog.run() + self.removePreviews() + + def okbutton(self, widget): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + self.previewLayer = None + if pdb.gimp_image_undo_is_enabled(self.img) == 0: + pdb.gimp_image_undo_thaw(self.img) + params = { + "color": self.color_button.get_color(), + "opacity": self.opacity_slider["adj"].get_value(), + "contour": self.contour_box.get_active(), + "noise": self.noise_slider["adj"].get_value(), + "mode": self.mode_box.get_active(), + "spread": self.spread_slider["adj"].get_value(), + "size": int(round(self.size_slider["adj"].get_value())), + "offsetangle": self.angle_slider["adj"].get_value(), + "offsetdist": self.distance_spinner["adj"].get_value(), + "knockout": self.cond(self.knockout_check.get_active()), + "merge": self.cond(self.merge_check.get_active()) + } + self.removeOldLayer() + fxlayer = self.makeShadow( + self.img, + self.drawable, + params["color"], + params["opacity"], + params["contour"], + params["noise"], + params["mode"], + params["spread"], + params["size"], + params["offsetangle"], + params["offsetdist"], + params["knockout"], + params["merge"] + ) + if params["merge"] == 0: + self.writeParasite(self.drawable, fxlayer, + ("color", self.color_button), + ("floatadj", self.opacity_slider["adj"]), + ("combobox", self.contour_box), + ("floatadj", self.noise_slider["adj"]), + ("modebox", self.mode_box), + ("floatadj", self.spread_slider["adj"]), + ("intadj", self.size_slider["adj"]), + ("floatadj", self.angle_slider["adj"]), + ("floatadj", self.distance_spinner["adj"]), + ("check", self.knockout_check), + ("check", self.merge_check) + ) + shelf[self.shelfkey] = params + + def readParasite(self, img, drawable): + return layerfx_base.readParasite(self, img, drawable, + layerfx_drop_shadow.shelfkey, + ("color", "color"), + ("opacity", "float"), + ("contour", "int"), + ("noise", "float"), + ("mode", "int"), + ("spread", "float"), + ("size", "int"), + ("offsetangle", "float"), + ("offsetdist", "float"), + ("knockout", "int"), + ("merge", "int") + ) + + def resetbutton(self, widget): + self.color_button.set_color(gimpcolor.RGB(0, 0, 0, 255)) + self.mode_box.set_active(MULTIPLY_MODE) + self.opacity_slider["adj"].set_value(75.0) + self.angle_slider["adj"].set_value(120.0) + self.distance_spinner["adj"].set_value(5.0) + self.spread_slider["adj"].set_value(0.0) + self.size_slider["adj"].set_value(5) + self.contour_box.set_active(0) + self.noise_slider["adj"].set_value(0.0) + self.knockout_check.set_active(False) + self.merge_check.set_active(False) + + def preview(self, widget): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + if self.preview_check.get_active(): + if pdb.gimp_image_undo_is_enabled(self.img) == 1: + pdb.gimp_image_undo_freeze(self.img) + if self.parasitedata: + self.set_hidden_layer(self.parasitedata["oldid"]) + self.previewLayer = self.makeShadow( + self.img, + self.drawable, + self.color_button.get_color(), + self.opacity_slider["adj"].get_value(), + self.contour_box.get_active(), + self.noise_slider["adj"].get_value(), + self.mode_box.get_active(), + self.spread_slider["adj"].get_value(), + int(round(self.size_slider["adj"].get_value())), + self.angle_slider["adj"].get_value(), + self.distance_spinner["adj"].get_value(), + self.cond(self.knockout_check.get_active()), + 0 + ) + else: + gimp.displays_flush() + + def makeShadow(self, img, drawable, color, opacity, contour, noise, mode, spread, size, offsetangle, offsetdist, knockout, merge): + pdb.gimp_image_undo_group_start(img) + origfgcolor = gimp.get_foreground() + origselection = pdb.gimp_selection_save(img) + growamt = int(math.ceil(size / 2.0)) + steps = int(round(size - ((spread / 100.0) * size))) + lyrgrowamt = int(round(growamt * 1.2)) + shadowlayer = gimp.Layer(img, "%s-dropshadow" % (drawable.name), drawable.width + (lyrgrowamt * 2), drawable.height + (lyrgrowamt * 2), (RGBA_IMAGE, GRAYA_IMAGE)[img.base_type], opacity, mode) + ang = ((offsetangle + 180) * -1) * (math.pi / 180.0) + offset = (int(round(offsetdist * math.cos(ang))), int(round(offsetdist * math.sin(ang)))) + self.add_under_layer(shadowlayer, drawable) + shadowlayer.set_offsets(drawable.offsets[0] + offset[0] - lyrgrowamt, drawable.offsets[1] + offset[1] - lyrgrowamt) + pdb.gimp_selection_none(img) + gimp.set_foreground(color) + pdb.gimp_edit_fill(shadowlayer, FOREGROUND_FILL) + shadowmask = shadowlayer.create_mask(ADD_BLACK_MASK) + shadowlayer.add_mask(shadowmask) + pdb.gimp_selection_layer_alpha(drawable) + if drawable.mask != None: + pdb.gimp_selection_combine(drawable.mask, CHANNEL_OP_INTERSECT) + pdb.gimp_selection_translate(img, offset[0], offset[1]) + alphaSel = pdb.gimp_selection_save(img) + if (steps > 0): + self.draw_blurshape(shadowmask, steps, growamt, alphaSel, False) + else: + pdb.gimp_selection_grow(img, growamt) + gimp.set_foreground(255, 255, 255) + pdb.gimp_edit_fill(shadowmask, FOREGROUND_FILL) + pdb.gimp_selection_none(img) + if contour > 0: + self.apply_contour(shadowmask, HISTOGRAM_VALUE, contour) + pdb.gimp_selection_load(alphaSel) + pdb.gimp_selection_grow(img, growamt) + pdb.gimp_selection_invert(img) + gimp.set_foreground(0, 0, 0) + pdb.gimp_edit_fill(shadowmask, FOREGROUND_FILL) + pdb.gimp_selection_none(img) + if noise > 0: + self.apply_noise(drawable, shadowlayer, noise, False) + if knockout == 1: + gimp.set_foreground(0, 0, 0) + pdb.gimp_selection_layer_alpha(drawable) + pdb.gimp_edit_fill(shadowmask, FOREGROUND_FILL) + shadowlayer.remove_mask(MASK_APPLY) + pdb.gimp_selection_none(img) + if merge == 1: + origmask = drawable.mask + layername = drawable.name + if origmask != None: + drawable.remove_mask(MASK_APPLY) + shadowlayer = pdb.gimp_image_merge_down(img, drawable, EXPAND_AS_NECESSARY) + shadowlayer.name = layername + else: + pdb.gimp_image_set_active_layer(img, drawable) + gimp.set_foreground(origfgcolor) + pdb.gimp_selection_load(origselection) + img.remove_channel(alphaSel) + img.remove_channel(origselection) + gimp.displays_flush() + pdb.gimp_image_undo_group_end(img) + return shadowlayer + +class layerfx_inner_shadow(layerfx_base): + shelfkey = "layerfx-inner-shadow" + + def __init__(self, runmode, img, drawable, color, opacity, contour, noise, mode, source, choke, size, offsetangle, offsetdist, merge): + self.origMsgHandler = pdb.gimp_message_get_handler() + pdb.gimp_message_set_handler(ERROR_CONSOLE) + self.img = img + self.drawable = drawable + if runmode == RUN_INTERACTIVE: + self.showDialog() + elif runmode == RUN_NONINTERACTIVE: + if self.validatedata(img, drawable, + ("color", color), + ("percent", opacity), + ("contour", contour), + ("percent", noise), + ("mode", mode), + ("boolean", source), + ("percent", choke), + ("size", size), + ("angle", offsetangle), + ("floatrange", offsetdist, 0.0, 30000.0), + ("boolean", merge) + ): + self.removeOldLayer() + fxlayer = self.makeShadow(img, drawable, color, opacity, contour, noise, mode, source, choke, size, offsetangle, offsetdist, merge) + if merge == 0: + self.writeParasiteRaw(drawable, fxlayer, color, opacity, contour, noise, mode, source, choke, size, offsetangle, offsetdist, merge) + shelf[self.shelfkey] = { + "color": color, + "opacity": opacity, + "contour": contour, + "noise": noise, + "mode": mode, + "source": source, + "choke": choke, + "size": size, + "offsetangle": offsetangle, + "offsetdist": offsetdist, + "merge": merge + } + elif runmode == RUN_WITH_LAST_VALS and shelf.has_key(self.shelfkey) == 1: + self.removeOldLayer() + fxlayer = self.makeShadow( + img, + drawable, + shelf[self.shelfkey]["color"], + shelf[self.shelfkey]["opacity"], + shelf[self.shelfkey]["contour"], + shelf[self.shelfkey]["noise"], + shelf[self.shelfkey]["mode"], + shelf[self.shelfkey]["source"], + shelf[self.shelfkey]["choke"], + shelf[self.shelfkey]["size"], + shelf[self.shelfkey]["offsetangle"], + shelf[self.shelfkey]["offsetdist"], + shelf[self.shelfkey]["merge"] + ) + if shelf[self.shelfkey]["merge"] == 0: + self.writeParasiteRaw(drawable, fxlayer, + shelf[self.shelfkey]["color"], + shelf[self.shelfkey]["opacity"], + shelf[self.shelfkey]["contour"], + shelf[self.shelfkey]["noise"], + shelf[self.shelfkey]["mode"], + shelf[self.shelfkey]["source"], + shelf[self.shelfkey]["choke"], + shelf[self.shelfkey]["size"], + shelf[self.shelfkey]["offsetangle"], + shelf[self.shelfkey]["offsetdist"], + shelf[self.shelfkey]["merge"] + ) + else: + pdb.gimp_message("unknown runmode") + pdb.gimp_message_set_handler(self.origMsgHandler) + + def showDialog(self): + self.dialog = gimpui.Dialog("Inner Shadow", "innershadowdialog") + + self.parasitedata = self.readParasite(self.img, self.drawable) + + self.table = gtk.Table(10, 5, True) + self.table.set_homogeneous(True) + self.table.set_row_spacings(3) + self.table.set_col_spacings(3) + self.table.show() + + self.color_label = self.make_label("_Color:") + self.table.attach(self.color_label, 0, 1, 0, 1) + + self.color_button = gimpui.ColorButton("Shadow Color", 10, 10, gimpcolor.RGB(0, 0, 0, 255)) + if self.parasitedata: + self.color_button.set_color(self.parasitedata["color"]) + elif shelf.has_key(self.shelfkey) == 1: + self.color_button.set_color(shelf[self.shelfkey]["color"]) + self.color_label.set_mnemonic_widget(self.color_button) + self.color_button.show() + self.table.attach(self.color_button, 1, 2, 0, 1) + self.color_button.connect("color-changed", self.preview) + + self.mode_label = self.make_label("_Blend Mode:") + self.table.attach(self.mode_label, 0, 1, 1, 2) + + self.mode_box = self.make_blend_mode_box() + if self.parasitedata: + self.mode_box.set_active(self.parasitedata["mode"]) + elif shelf.has_key(self.shelfkey) == 1: + self.mode_box.set_active(shelf[self.shelfkey]["mode"]) + else: + self.mode_box.set_active(MULTIPLY_MODE) + self.mode_label.set_mnemonic_widget(self.mode_box) + self.mode_box.show() + self.table.attach(self.mode_box, 1, 5, 1, 2) + self.mode_box.connect("changed", self.preview) + + self.opacity_label = self.make_label("_Opacity:") + self.table.attach(self.opacity_label, 0, 1, 2, 3) + + self.opacity_slider = self.make_slider_and_spinner(75.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.opacity_slider["adj"].set_value(self.parasitedata["opacity"]) + elif shelf.has_key(self.shelfkey) == 1: + self.opacity_slider["adj"].set_value(shelf[self.shelfkey]["opacity"]) + self.opacity_label.set_mnemonic_widget(self.opacity_slider["spinner"]) + self.table.attach(self.opacity_slider["slider"], 1, 4, 2, 3) + self.table.attach(self.opacity_slider["spinner"], 4, 5, 2, 3) + self.opacity_slider["adj"].connect("value-changed", self.preview) + + self.angle_label = self.make_label("_Angle:") + self.table.attach(self.angle_label, 0, 1, 3, 4) + + self.angle_slider = self.make_slider_and_spinner(120.0, -180.0, 180.0, 1.0, 10.0, 1) + if self.parasitedata: + self.angle_slider["adj"].set_value(self.parasitedata["offsetangle"]) + elif shelf.has_key(self.shelfkey) == 1: + self.angle_slider["adj"].set_value(shelf[self.shelfkey]["offsetangle"]) + self.angle_label.set_mnemonic_widget(self.angle_slider["spinner"]) + self.table.attach(self.angle_slider["slider"], 1, 4, 3, 4) + self.table.attach(self.angle_slider["spinner"], 4, 5, 3, 4) + self.angle_slider["adj"].connect("value-changed", self.preview) + + self.distance_label = self.make_label("_Distance:") + self.table.attach(self.distance_label, 0, 1, 4, 5) + + self.distance_spinner = self.make_spinner(5.0, 0.0, 30000.0, 1.0, 10.0, 1) + if self.parasitedata: + self.distance_spinner["adj"].set_value(self.parasitedata["offsetdist"]) + elif shelf.has_key(self.shelfkey) == 1: + self.distance_spinner["adj"].set_value(shelf[self.shelfkey]["offsetdist"]) + self.distance_label.set_mnemonic_widget(self.distance_spinner["spinner"]) + self.table.attach(self.distance_spinner["spinner"], 1, 2, 4, 5) + self.distance_spinner["adj"].connect("value-changed", self.preview) + + self.source_label = self.make_label("Source:") + self.table.attach(self.source_label, 0, 1, 5, 6) + + self.source_center_radio = gtk.RadioButton(None, "Cent_er", True) + self.source_edge_radio = gtk.RadioButton(self.source_center_radio, "Ed_ge", True) + if self.parasitedata: + if self.parasitedata["source"] == 0: + self.source_center_radio.set_active(True) + elif self.parasitedata["source"] == 1: + self.source_edge_radio.set_active(True) + elif shelf.has_key(self.shelfkey) == 1: + if shelf[self.shelfkey]["source"] == 0: + self.source_center_radio.set_active(True) + elif shelf[self.shelfkey]["source"] == 1: + self.source_edge_radio.set_active(True) + else: + self.source_edge_radio.set_active(True) + self.source_center_radio.show() + self.table.attach(self.source_center_radio, 1, 2, 5, 6) + self.source_edge_radio.show() + self.table.attach(self.source_edge_radio, 2, 3, 5, 6) + self.source_center_radio.connect("toggled", self.preview) + self.source_edge_radio.connect("toggled", self.preview) + + self.choke_label = self.make_label("C_hoke:") + self.table.attach(self.choke_label, 0, 1, 6, 7) + + self.choke_slider = self.make_slider_and_spinner(0.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.choke_slider["adj"].set_value(self.parasitedata["choke"]) + elif shelf.has_key(self.shelfkey) == 1: + self.choke_slider["adj"].set_value(shelf[self.shelfkey]["choke"]) + self.choke_label.set_mnemonic_widget(self.choke_slider["spinner"]) + self.table.attach(self.choke_slider["slider"], 1, 4, 6, 7) + self.table.attach(self.choke_slider["spinner"], 4, 5, 6, 7) + self.choke_slider["adj"].connect("value-changed", self.preview) + + self.size_label = self.make_label("S_ize:") + self.table.attach(self.size_label, 0, 1, 7, 8) + + self.size_slider = self.make_slider_and_spinner(5, 0, 250, 1, 10, 0) + if self.parasitedata: + self.size_slider["adj"].set_value(self.parasitedata["size"]) + elif shelf.has_key(self.shelfkey) == 1: + self.size_slider["adj"].set_value(shelf[self.shelfkey]["size"]) + self.size_label.set_mnemonic_widget(self.size_slider["spinner"]) + self.table.attach(self.size_slider["slider"], 1, 4, 7, 8) + self.table.attach(self.size_slider["spinner"], 4, 5, 7, 8) + self.size_slider["adj"].connect("value-changed", self.preview) + + self.contour_label = self.make_label("Con_tour:") + self.table.attach(self.contour_label, 0, 1, 8, 9) + + self.contour_box = self.make_contour_box() + if self.parasitedata: + self.contour_box.set_active(self.parasitedata["contour"]) + elif shelf.has_key(self.shelfkey) == 1: + self.contour_box.set_active(shelf[self.shelfkey]["contour"]) + else: + self.contour_box.set_active(0) + self.contour_label.set_mnemonic_widget(self.contour_box) + self.contour_box.show() + self.table.attach(self.contour_box, 1, 5, 8, 9) + self.contour_box.connect("changed", self.preview) + + self.noise_label = self.make_label("_Noise:") + self.table.attach(self.noise_label, 0, 1, 9, 10) + + self.noise_slider = self.make_slider_and_spinner(0.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.noise_slider["adj"].set_value(self.parasitedata["noise"]) + elif shelf.has_key(self.shelfkey) == 1: + self.noise_slider["adj"].set_value(shelf[self.shelfkey]["noise"]) + self.noise_label.set_mnemonic_widget(self.noise_slider["spinner"]) + self.table.attach(self.noise_slider["slider"], 1, 4, 9, 10) + self.table.attach(self.noise_slider["spinner"], 4, 5, 9, 10) + self.noise_slider["adj"].connect("value-changed", self.preview) + + self.merge_check = gtk.CheckButton("_Merge with layer") + if self.parasitedata: + if self.parasitedata["merge"] == 1: + self.merge_check.set_active(True) + elif shelf.has_key(self.shelfkey) == 1 and shelf[self.shelfkey]["merge"] == 1: + self.merge_check.set_active(True) + self.merge_check.show() + self.merge_check.connect("toggled", self.preview) + + self.preview_check = gtk.CheckButton("_Preview") + self.preview_check.show() + self.preview_check.connect("toggled", self.preview) + + self.dialog.vbox.hbox1 = gtk.HBox(False, 7) + self.dialog.vbox.hbox1.show() + self.dialog.vbox.pack_start(self.dialog.vbox.hbox1, True, True, 7) + self.dialog.vbox.hbox1.pack_start(self.table, True, True, 7) + self.dialog.vbox.hbox2 = gtk.HBox(False, 7) + self.dialog.vbox.hbox2.show() + self.dialog.vbox.add(self.dialog.vbox.hbox2) + self.dialog.vbox.hbox2.pack_start(self.merge_check, True, True, 10) + self.dialog.vbox.hbox3 = gtk.HBox(False, 7) + self.dialog.vbox.hbox3.show() + self.dialog.vbox.add(self.dialog.vbox.hbox3) + self.dialog.vbox.hbox3.pack_start(self.preview_check, True, True, 10) + + self.makeDialogButtons() + + self.dialog.show() + self.dialog.run() + self.removePreviews() + + def okbutton(self, widget): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + self.previewLayer = None + self.unset_hidden_layer() + if pdb.gimp_image_undo_is_enabled(self.img) == 0: + pdb.gimp_image_undo_thaw(self.img) + if self.source_center_radio.get_active(): + source = 0 + elif self.source_edge_radio.get_active(): + source = 1 + params = { + "color": self.color_button.get_color(), + "opacity": self.opacity_slider["adj"].get_value(), + "contour": self.contour_box.get_active(), + "noise": self.noise_slider["adj"].get_value(), + "mode": self.mode_box.get_active(), + "source": source, + "choke": self.choke_slider["adj"].get_value(), + "size": int(round(self.size_slider["adj"].get_value())), + "offsetangle": self.angle_slider["adj"].get_value(), + "offsetdist": self.distance_spinner["adj"].get_value(), + "merge": self.cond(self.merge_check.get_active()) + } + self.removeOldLayer() + fxlayer = self.makeShadow( + self.img, + self.drawable, + params["color"], + params["opacity"], + params["contour"], + params["noise"], + params["mode"], + params["source"], + params["choke"], + params["size"], + params["offsetangle"], + params["offsetdist"], + params["merge"] + ) + if params["merge"] == 0: + self.writeParasite(self.drawable, fxlayer, + ("color", self.color_button), + ("floatadj", self.opacity_slider["adj"]), + ("combobox", self.contour_box), + ("floatadj", self.noise_slider["adj"]), + ("modebox", self.mode_box), + ("radio", (self.source_center_radio, self.source_edge_radio)), + ("floatadj", self.choke_slider["adj"]), + ("intadj", self.size_slider["adj"]), + ("floatadj", self.angle_slider["adj"]), + ("floatadj", self.distance_spinner["adj"]), + ("check", self.merge_check), + ) + shelf[self.shelfkey] = params + + def resetbutton(self, widget): + self.color_button.set_color(gimpcolor.RGB(0, 0, 0, 255)) + self.mode_box.set_active(MULTIPLY_MODE) + self.opacity_slider["adj"].set_value(75.0) + self.angle_slider["adj"].set_value(120.0) + self.distance_spinner["adj"].set_value(5.0) + self.source_edge_radio.set_active(True) + self.choke_slider["adj"].set_value(0.0) + self.size_slider["adj"].set_value(5) + self.contour_box.set_active(0) + self.noise_slider["adj"].set_value(0.0) + self.merge_check.set_active(False) + + def readParasite(self, img, drawable): + return layerfx_base.readParasite(self, img, drawable, + layerfx_inner_shadow.shelfkey, + ("color", "color"), + ("opacity", "float"), + ("contour", "int"), + ("noise", "float"), + ("mode", "int"), + ("source", "int"), + ("choke", "float"), + ("size", "int"), + ("offsetangle", "float"), + ("offsetdist", "float"), + ("merge", "int") + ) + + def preview(self, widget): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + if self.preview_check.get_active(): + if pdb.gimp_image_undo_is_enabled(self.img) == 1: + pdb.gimp_image_undo_freeze(self.img) + self.unset_hidden_layer() + if self.parasitedata: + self.set_hidden_layer(self.parasitedata["oldid"]) + if self.source_center_radio.get_active(): + source = 0 + elif self.source_edge_radio.get_active(): + source = 1 + if self.merge_check.get_active(): + self.previewLayer = self.drawable.copy() + self.add_over_layer(self.previewLayer, self.drawable) + self.set_hidden_layer(self.drawable) + layer = self.previewLayer + merge = 1 + else: + layer = self.drawable + merge = 0 + self.previewLayer = self.makeShadow( + self.img, + layer, + self.color_button.get_color(), + self.opacity_slider["adj"].get_value(), + self.contour_box.get_active(), + self.noise_slider["adj"].get_value(), + self.mode_box.get_active(), + source, + self.choke_slider["adj"].get_value(), + int(round(self.size_slider["adj"].get_value())), + self.angle_slider["adj"].get_value(), + self.distance_spinner["adj"].get_value(), + merge + ) + else: + gimp.displays_flush() + + def makeShadow(self, img, drawable, color, opacity, contour, noise, mode, source, choke, size, offsetangle, offsetdist, merge): + pdb.gimp_image_undo_group_start(img) + origfgcolor = gimp.get_foreground() + origselection = pdb.gimp_selection_save(img) + growamt = int(math.ceil(size / 2.0)) + chokeamt = (choke / 100.0) * size + steps = int(round(size - chokeamt)) + shadowlayer = gimp.Layer(img, "%s-innershadow" % (drawable.name), drawable.width, drawable.height, (RGBA_IMAGE, GRAYA_IMAGE)[img.base_type], opacity, mode) + ang = ((offsetangle + 180) * -1) * (math.pi / 180.0) + offset = (int(round(offsetdist * math.cos(ang))), int(round(offsetdist * math.sin(ang)))) + self.add_over_layer(shadowlayer, drawable) + shadowlayer.set_offsets(drawable.offsets[0], drawable.offsets[1]) + pdb.gimp_selection_none(img) + gimp.set_foreground(color) + pdb.gimp_edit_fill(shadowlayer, FOREGROUND_FILL) + shadowmask = shadowlayer.create_mask(ADD_BLACK_MASK) + shadowlayer.add_mask(shadowmask) + pdb.gimp_selection_layer_alpha(drawable) + if drawable.mask != None: + pdb.gimp_selection_combine(drawable.mask, CHANNEL_OP_INTERSECT) + pdb.gimp_selection_translate(img, offset[0], offset[1]) + alphaSel = pdb.gimp_selection_save(img) + if source == 1: + pdb.gimp_selection_none(img) + gimp.set_foreground(255, 255, 255) + pdb.gimp_edit_fill(shadowmask, FOREGROUND_FILL) + pdb.gimp_selection_load(alphaSel) + if steps > 0: + self.draw_blurshape(shadowmask, steps, growamt - chokeamt, alphaSel, True) + else: + pdb.gimp_selection_shrink(img, growamt) + gimp.set_foreground(0, 0, 0) + pdb.gimp_edit_fill(shadowmask, FOREGROUND_FILL) + else: + if steps > 0: + self.draw_blurshape(shadowmask, steps, growamt - chokeamt, alphaSel, False) + else: + pdb.gimp_selection_shrink(img, growamt) + gimp.set_foreground(255, 255, 255) + pdb.gimp_edit_fill(shadowmask, FOREGROUND_FILL) + pdb.gimp_selection_none(img) + if contour > 0: + self.apply_contour(shadowmask, HISTOGRAM_VALUE, contour) + if merge == 0: + pdb.gimp_selection_layer_alpha(drawable) + pdb.gimp_selection_invert(img) + gimp.set_foreground(0, 0, 0) + pdb.gimp_edit_fill(shadowmask, FOREGROUND_FILL) + if noise > 0: + self.apply_noise(drawable, shadowlayer, noise, False) + shadowlayer.remove_mask(MASK_APPLY) + if merge == 1: + if source == 1: + origmask = drawable.mask + layername = drawable.name + if origmask != None: + origmask = drawable.mask.copy() + drawable.remove_mask(MASK_DISCARD) + alphamask = drawable.create_mask(ADD_ALPHA_TRANSFER_MASK) + shadowlayer = pdb.gimp_image_merge_down(img, shadowlayer, EXPAND_AS_NECESSARY) + shadowlayer.name = layername + shadowlayer.add_mask(alphamask) + shadowlayer.remove_mask(MASK_APPLY) + if origmask != None: + shadowlayer.add_mask(origmask) + else: + origmask = drawable.mask + layername = drawable.name + if origmask != None: + origmask = drawable.mask.copy() + drawable.remove_mask(MASK_DISCARD) + shadowlayer = pdb.gimp_image_merge_down(img, shadowlayer, EXPAND_AS_NECESSARY) + shadowlayer.name = layername + if origmask != None: + shadowlayer.add_mask(origmask) + else: + pdb.gimp_image_set_active_layer(img, drawable) + gimp.set_foreground(origfgcolor) + pdb.gimp_selection_load(origselection) + img.remove_channel(alphaSel) + img.remove_channel(origselection) + gimp.displays_flush() + pdb.gimp_image_undo_group_end(img) + return shadowlayer + +class layerfx_outer_glow(layerfx_base): + shelfkey = "layerfx-outer-glow" + + def __init__(self, runmode, img, drawable, color, opacity, contour, noise, mode, spread, size, knockout, merge): + self.origMsgHandler = pdb.gimp_message_get_handler() + pdb.gimp_message_set_handler(ERROR_CONSOLE) + self.img = img + self.drawable = drawable + if runmode == RUN_INTERACTIVE: + self.showDialog() + elif runmode == RUN_NONINTERACTIVE: + if self.validatedata(img, drawable, + ("color/gradient", color), + ("percent", opacity), + ("contour", contour), + ("percent", noise), + ("mode", mode), + ("percent", spread), + ("size", size), + ("boolean", knockout), + ("boolean", merge) + ): + self.removeOldLayer() + fxlayer = self.makeGlow(img, drawable, color, opacity, contour, noise, mode, spread, size, knockout, merge) + if merge == 0: + if type(color) == gimpcolor.RGB: + self.writeParasiteRaw(drawable, fxlayer, 0, color, "FG to BG (RGB)", opacity, contour, noise, mode, spread, size, knockout, merge) + else: + self.writeParasiteRaw(drawable, fxlayer, 1, gimpcolor.RGB(255, 255, 190, 255), color, opacity, contour, noise, mode, spread, size, knockout, merge) + if type(color) == gimpcolor.RGB: + shelf[self.shelfkey] = { + "filltype": 0, + "color": color, + "gradient": "FG to BG (RGB)", + "opacity": opacity, + "contour": contour, + "noise": noise, + "mode": mode, + "spread": spread, + "size": size, + "knockout": knockout, + "merge": merge + } + else: + shelf[self.shelfkey] = { + "filltype": 1, + "color": gimpcolor.RGB(255, 255, 190, 255), + "gradient": color, + "opacity": opacity, + "contour": contour, + "noise": noise, + "mode": mode, + "spread": spread, + "size": size, + "knockout": knockout, + "merge": merge + } + elif runmode == RUN_WITH_LAST_VALS and shelf.has_key(self.shelfkey) == 1: + self.removeOldLayer() + fxlayer = self.makeGlow( + img, + drawable, + self.cond(shelf[self.shelfkey]["filltype"] == 0, shelf[self.shelfkey]["color"], shelf[self.shelfkey]["gradient"]), + shelf[self.shelfkey]["opacity"], + shelf[self.shelfkey]["contour"], + shelf[self.shelfkey]["noise"], + shelf[self.shelfkey]["mode"], + shelf[self.shelfkey]["spread"], + shelf[self.shelfkey]["size"], + shelf[self.shelfkey]["knockout"], + shelf[self.shelfkey]["merge"] + ) + if shelf[self.shelfkey]["merge"] == 0: + self.writeParasiteRaw(drawable, fxlayer, + shelf[self.shelfkey]["filltype"], + shelf[self.shelfkey]["color"], + shelf[self.shelfkey]["gradient"], + shelf[self.shelfkey]["opacity"], + shelf[self.shelfkey]["contour"], + shelf[self.shelfkey]["noise"], + shelf[self.shelfkey]["mode"], + shelf[self.shelfkey]["spread"], + shelf[self.shelfkey]["size"], + shelf[self.shelfkey]["knockout"], + shelf[self.shelfkey]["merge"] + ) + else: + pdb.gimp_message("unknown runmode") + pdb.gimp_message_set_handler(self.origMsgHandler) + + def showDialog(self): + self.dialog = gimpui.Dialog("Outer Glow", "outerglowdialog") + + self.parasitedata = self.readParasite(self.img, self.drawable) + + self.table = gtk.Table(7, 5, True) + self.table.set_homogeneous(True) + self.table.set_row_spacings(3) + self.table.set_col_spacings(3) + self.table.show() + + self.color_label = self.make_label("_Color:") + self.table.attach(self.color_label, 0, 1, 0, 1) + + self.color_radio = gtk.RadioButton(None, None) + self.color_radio.set_alignment(1.0, 0.5) + self.gradient_radio = gtk.RadioButton(self.color_radio, None) + self.gradient_radio.set_alignment(1.0, 0.5) + if self.parasitedata: + if self.parasitedata["filltype"] == 1: + self.gradient_radio.set_active(True) + else: + self.color_radio.set_active(True) + elif shelf.has_key(self.shelfkey) == 1: + if shelf[self.shelfkey]["filltype"] == 1: + self.gradient_radio.set_active(True) + else: + self.color_radio.set_active(True) + else: + self.color_radio.set_active(True) + self.color_radio.show() + self.gradient_radio.show() + self.color_radio.connect("toggled", self.preview) + self.gradient_radio.connect("toggled", self.preview) + + self.color_button = gimpui.ColorButton("Glow Color", 80, 0, gimpcolor.RGB(255, 255, 190, 255)) + if self.parasitedata: + self.color_button.set_color(self.parasitedata["color"]) + elif shelf.has_key(self.shelfkey) == 1: + self.color_button.set_color(shelf[self.shelfkey]["color"]) + self.color_label.set_mnemonic_widget(self.color_button) + self.color_button.show() + self.color_button.connect("color-changed", self.preview) + + self.gradient_button = gimpui.GradientSelector() + if self.parasitedata: + self.gradient_button.set_gradient(self.parasitedata["gradient"]) + elif shelf.has_key(self.shelfkey) == 1: + self.gradient_button.set_gradient(shelf[self.shelfkey]["gradient"]) + self.gradient_button.show() + self.gradient_button.connect("gradient-set", self.preview) + + self.color_hbox = gtk.HBox(False, 3) + self.color_hbox.add(self.color_radio) + self.color_hbox.add(self.color_button) + self.color_hbox.show() + + self.gradient_hbox = gtk.HBox(False, 3) + self.gradient_hbox.add(self.gradient_radio) + self.gradient_hbox.add(self.gradient_button) + self.gradient_hbox.show() + + self.table.attach(self.color_hbox, 1, 3, 0, 1) + self.table.attach(self.gradient_hbox, 3, 5, 0, 1) + + self.mode_label = self.make_label("_Blend Mode:") + self.table.attach(self.mode_label, 0, 1, 1, 2) + + self.mode_box = self.make_blend_mode_box() + if self.parasitedata: + self.mode_box.set_active(self.parasitedata["mode"]) + elif shelf.has_key(self.shelfkey) == 1: + self.mode_box.set_active(shelf[self.shelfkey]["mode"]) + else: + self.mode_box.set_active(SCREEN_MODE) + self.mode_label.set_mnemonic_widget(self.mode_box) + self.mode_box.show() + self.table.attach(self.mode_box, 1, 5, 1, 2) + self.mode_box.connect("changed", self.preview) + + self.opacity_label = self.make_label("_Opacity:") + self.table.attach(self.opacity_label, 0, 1, 2, 3) + + self.opacity_slider = self.make_slider_and_spinner(75.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.opacity_slider["adj"].set_value(self.parasitedata["opacity"]) + elif shelf.has_key(self.shelfkey) == 1: + self.opacity_slider["adj"].set_value(shelf[self.shelfkey]["opacity"]) + self.opacity_label.set_mnemonic_widget(self.opacity_slider["spinner"]) + self.table.attach(self.opacity_slider["slider"], 1, 4, 2, 3) + self.table.attach(self.opacity_slider["spinner"], 4, 5, 2, 3) + self.opacity_slider["adj"].connect("value-changed", self.preview) + + self.spread_label = self.make_label("_Spread:") + self.table.attach(self.spread_label, 0, 1, 3, 4) + + self.spread_slider = self.make_slider_and_spinner(0.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.spread_slider["adj"].set_value(self.parasitedata["spread"]) + elif shelf.has_key(self.shelfkey) == 1: + self.spread_slider["adj"].set_value(shelf[self.shelfkey]["spread"]) + self.spread_label.set_mnemonic_widget(self.spread_slider["spinner"]) + self.table.attach(self.spread_slider["slider"], 1, 4, 3, 4) + self.table.attach(self.spread_slider["spinner"], 4, 5, 3, 4) + self.spread_slider["adj"].connect("value-changed", self.preview) + + self.size_label = self.make_label("S_ize:") + self.table.attach(self.size_label, 0, 1, 4, 5) + + self.size_slider = self.make_slider_and_spinner(5, 0, 250, 1, 10, 0) + if self.parasitedata: + self.size_slider["adj"].set_value(self.parasitedata["size"]) + elif shelf.has_key(self.shelfkey) == 1: + self.size_slider["adj"].set_value(shelf[self.shelfkey]["size"]) + self.size_label.set_mnemonic_widget(self.size_slider["spinner"]) + self.table.attach(self.size_slider["slider"], 1, 4, 4, 5) + self.table.attach(self.size_slider["spinner"], 4, 5, 4, 5) + self.size_slider["adj"].connect("value-changed", self.preview) + + self.contour_label = self.make_label("Con_tour:") + self.table.attach(self.contour_label, 0, 1, 5, 6) + + self.contour_box = self.make_contour_box() + if self.parasitedata: + self.contour_box.set_active(self.parasitedata["contour"]) + elif shelf.has_key(self.shelfkey) == 1: + self.contour_box.set_active(shelf[self.shelfkey]["contour"]) + else: + self.contour_box.set_active(0) + self.contour_label.set_mnemonic_widget(self.contour_box) + self.contour_box.show() + self.table.attach(self.contour_box, 1, 5, 5, 6) + self.contour_box.connect("changed", self.preview) + + self.noise_label = self.make_label("_Noise:") + self.table.attach(self.noise_label, 0, 1, 6, 7) + + self.noise_slider = self.make_slider_and_spinner(0.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.noise_slider["adj"].set_value(self.parasitedata["noise"]) + elif shelf.has_key(self.shelfkey) == 1: + self.noise_slider["adj"].set_value(shelf[self.shelfkey]["noise"]) + self.noise_label.set_mnemonic_widget(self.noise_slider["spinner"]) + self.table.attach(self.noise_slider["slider"], 1, 4, 6, 7) + self.table.attach(self.noise_slider["spinner"], 4, 5, 6, 7) + self.noise_slider["adj"].connect("value-changed", self.preview) + + self.knockout_check = gtk.CheckButton("Layer _knocks out Outer Glow") + if self.parasitedata: + if self.parasitedata["knockout"] == 1: + self.knockout_check.set_active(True) + elif shelf.has_key(self.shelfkey) == 1 and shelf[self.shelfkey]["knockout"] == 1: + self.knockout_check.set_active(True) + self.knockout_check.show() + self.knockout_check.connect("toggled", self.preview) + + self.merge_check = gtk.CheckButton("_Merge with layer") + if self.parasitedata: + if self.parasitedata["merge"] == 1: + self.merge_check.set_active(True) + elif shelf.has_key(self.shelfkey) == 1 and shelf[self.shelfkey]["merge"] == 1: + self.merge_check.set_active(True) + self.merge_check.show() + self.merge_check.connect("toggled", self.preview) + + self.preview_check = gtk.CheckButton("_Preview") + self.preview_check.show() + self.preview_check.connect("toggled", self.preview) + + self.dialog.vbox.hbox1 = gtk.HBox(False, 7) + self.dialog.vbox.hbox1.show() + self.dialog.vbox.pack_start(self.dialog.vbox.hbox1, True, True, 7) + self.dialog.vbox.hbox1.pack_start(self.table, True, True, 7) + self.dialog.vbox.hbox2 = gtk.HBox(False, 7) + self.dialog.vbox.hbox2.show() + self.dialog.vbox.add(self.dialog.vbox.hbox2) + self.dialog.vbox.hbox2.pack_start(self.knockout_check, True, True, 10) + self.dialog.vbox.hbox3 = gtk.HBox(False, 7) + self.dialog.vbox.hbox3.show() + self.dialog.vbox.add(self.dialog.vbox.hbox3) + self.dialog.vbox.hbox3.pack_start(self.merge_check, True, True, 10) + self.dialog.vbox.hbox4 = gtk.HBox(False, 7) + self.dialog.vbox.hbox4.show() + self.dialog.vbox.add(self.dialog.vbox.hbox4) + self.dialog.vbox.hbox4.pack_start(self.preview_check, True, True, 10) + + self.makeDialogButtons() + + self.dialog.show() + self.dialog.run() + self.removePreviews() + + def okbutton(self, widget): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + self.previewLayer = None + if pdb.gimp_image_undo_is_enabled(self.img) == 0: + pdb.gimp_image_undo_thaw(self.img) + if self.color_radio.get_active(): + filltype = 0 + elif self.gradient_radio.get_active(): + filltype = 1 + params = { + "filltype": filltype, + "color": self.color_button.get_color(), + "gradient": self.gradient_button.get_gradient(), + "opacity": self.opacity_slider["adj"].get_value(), + "contour": self.contour_box.get_active(), + "noise": self.noise_slider["adj"].get_value(), + "mode": self.mode_box.get_active(), + "spread": self.spread_slider["adj"].get_value(), + "size": int(round(self.size_slider["adj"].get_value())), + "knockout": self.cond(self.knockout_check.get_active()), + "merge": self.cond(self.merge_check.get_active()) + } + self.removeOldLayer() + fxlayer = self.makeGlow( + self.img, + self.drawable, + self.cond(filltype == 0, params["color"], params["gradient"]), + params["opacity"], + params["contour"], + params["noise"], + params["mode"], + params["spread"], + params["size"], + params["knockout"], + params["merge"] + ) + if params["merge"] == 0: + self.writeParasite(self.drawable, fxlayer, + ("radio", (self.color_radio, self.gradient_radio)), + ("color", self.color_button), + ("gradient", self.gradient_button), + ("floatadj", self.opacity_slider["adj"]), + ("combobox", self.contour_box), + ("floatadj", self.noise_slider["adj"]), + ("modebox", self.mode_box), + ("floatadj", self.spread_slider["adj"]), + ("intadj", self.size_slider["adj"]), + ("check", self.knockout_check), + ("check", self.merge_check) + ) + shelf[self.shelfkey] = params + + def resetbutton(self, widget): + self.color_radio.set_active(True) + self.color_button.set_color(gimpcolor.RGB(255, 255, 190, 255)) + self.gradient_button.set_gradient("FG to BG (RGB)") + self.mode_box.set_active(SCREEN_MODE) + self.opacity_slider["adj"].set_value(75.0) + self.spread_slider["adj"].set_value(0.0) + self.size_slider["adj"].set_value(5) + self.contour_box.set_active(0) + self.noise_slider["adj"].set_value(0.0) + self.knockout_check.set_active(False) + self.merge_check.set_active(False) + + def readParasite(self, img, drawable): + return layerfx_base.readParasite(self, img, drawable, + layerfx_outer_glow.shelfkey, + ("filltype", "int"), + ("color", "color"), + ("gradient", "string"), + ("opacity", "float"), + ("contour", "int"), + ("noise", "float"), + ("mode", "int"), + ("spread", "float"), + ("size", "int"), + ("knockout", "int"), + ("merge", "int") + ) + + def preview(self, widget, *extra): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + if self.preview_check.get_active(): + if pdb.gimp_image_undo_is_enabled(self.img) == 1: + pdb.gimp_image_undo_freeze(self.img) + if self.parasitedata: + self.set_hidden_layer(self.parasitedata["oldid"]) + if self.color_radio.get_active(): + filltype = 0 + elif self.gradient_radio.get_active(): + filltype = 1 + self.previewLayer = self.makeGlow( + self.img, + self.drawable, + self.cond(filltype == 0, self.color_button.get_color(), self.gradient_button.get_gradient()), + self.opacity_slider["adj"].get_value(), + self.contour_box.get_active(), + self.noise_slider["adj"].get_value(), + self.mode_box.get_active(), + self.spread_slider["adj"].get_value(), + int(round(self.size_slider["adj"].get_value())), + self.cond(self.knockout_check.get_active()), + 0 + ) + else: + gimp.displays_flush() + + def makeGlow(self, img, drawable, color, opacity, contour, noise, mode, spread, size, knockout, merge): + pdb.gimp_image_undo_group_start(img) + origfgcolor = gimp.get_foreground() + origgradient = pdb.gimp_context_get_gradient() + origselection = pdb.gimp_selection_save(img) + growamt = (spread / 100.0) * size + steps = int(round(size - growamt)) + lyrgrowamt = int(round(size * 1.2)) + glowlayer = gimp.Layer(img, "%s-outerglow" % (drawable.name), drawable.width + (lyrgrowamt * 2), drawable.height + (lyrgrowamt * 2), (RGBA_IMAGE, GRAYA_IMAGE)[img.base_type], opacity, mode) + self.add_under_layer(glowlayer, drawable) + glowlayer.set_offsets(drawable.offsets[0] - lyrgrowamt, drawable.offsets[1] - lyrgrowamt) + pdb.gimp_selection_none(img) + if type(color) == gimpcolor.RGB: + gimp.set_foreground(color) + pdb.gimp_edit_fill(glowlayer, FOREGROUND_FILL) + glowmask = glowlayer.create_mask(ADD_BLACK_MASK) + glowlayer.add_mask(glowmask) + else: + gimp.set_foreground(0, 0, 0) + pdb.gimp_edit_fill(glowlayer, FOREGROUND_FILL) + glowmask = glowlayer + pdb.gimp_selection_layer_alpha(drawable) + if drawable.mask != None: + pdb.gimp_selection_combine(drawable.mask, CHANNEL_OP_INTERSECT) + alphaSel = pdb.gimp_selection_save(img) + if steps > 0: + self.draw_blurshape(glowmask, steps, size, alphaSel, False) + else: + pdb.gimp_selection_grow(img, growamt) + gimp.set_foreground(255, 255, 255) + pdb.gimp_edit_fill(glowmask, FOREGROUND_FILL) + pdb.gimp_selection_none(img) + if contour > 0: + self.apply_contour(glowmask, HISTOGRAM_VALUE, contour) + pdb.gimp_selection_load(alphaSel) + pdb.gimp_selection_grow(img, size) + pdb.gimp_selection_invert(img) + gimp.set_foreground(0, 0, 0) + pdb.gimp_edit_fill(glowmask, FOREGROUND_FILL) + pdb.gimp_selection_none(img) + if noise > 0: + self.apply_noise(drawable, glowlayer, noise, type(color) != gimpcolor.RGB) + if knockout == 1 and type(color) == gimpcolor.RGB: + gimp.set_foreground(0, 0, 0) + pdb.gimp_selection_load(alphaSel) + pdb.gimp_edit_fill(glowmask, FOREGROUND_FILL) + if type(color) != gimpcolor.RGB: + gimp.set_foreground(origfgcolor) + pdb.gimp_context_set_gradient(color) + pdb.gimp_selection_none(img) + pdb.gimp_invert(glowlayer) + pdb.plug_in_gradmap(img, glowlayer) + if glowlayer.mask != None: + glowlayer.remove_mask(MASK_APPLY) + glowlayer.add_mask(glowlayer.create_mask(ADD_BLACK_MASK)) + pdb.gimp_selection_all(img) + gimp.set_foreground(255, 255, 255) + pdb.gimp_edit_fill(glowlayer.mask, FOREGROUND_FILL) + glowlayer.remove_mask(MASK_APPLY) + pdb.gimp_context_set_gradient(origgradient) + pdb.gimp_selection_load(alphaSel) + if knockout == 1: + pdb.gimp_edit_clear(glowlayer) + pdb.gimp_selection_grow(img, size) + pdb.gimp_selection_invert(img) + pdb.gimp_edit_clear(glowlayer) + else: + glowlayer.remove_mask(MASK_APPLY) + pdb.gimp_selection_none(img) + if merge == 1: + origmask = drawable.mask + layername = drawable.name + if origmask != None: + drawable.remove_mask(MASK_APPLY) + glowlayer = pdb.gimp_image_merge_down(img, drawable, EXPAND_AS_NECESSARY) + glowlayer.name = layername + else: + pdb.gimp_image_set_active_layer(img, drawable) + gimp.set_foreground(origfgcolor) + pdb.gimp_selection_load(origselection) + img.remove_channel(alphaSel) + img.remove_channel(origselection) + gimp.displays_flush() + pdb.gimp_image_undo_group_end(img) + return glowlayer + +class layerfx_inner_glow(layerfx_base): + shelfkey = "layerfx-inner-glow" + + def __init__(self, runmode, img, drawable, color, opacity, contour, noise, mode, source, choke, size, merge): + self.origMsgHandler = pdb.gimp_message_get_handler() + pdb.gimp_message_set_handler(ERROR_CONSOLE) + self.img = img + self.drawable = drawable + if runmode == RUN_INTERACTIVE: + self.showDialog() + elif runmode == RUN_NONINTERACTIVE: + if self.validatedata(img, drawable, + ("color/gradient", color), + ("percent", opacity), + ("contour", contour), + ("percent", noise), + ("mode", mode), + ("boolean", source), + ("percent", choke), + ("size", size), + ("boolean", merge) + ): + self.removeOldLayer() + fxlayer = self.makeGlow(img, drawable, color, opacity, contour, noise, mode, source, choke, size, merge) + if merge == 0: + if type(color) == gimpcolor.RGB: + self.writeParasiteRaw(drawable, fxlayer, 0, color, "FG to BG (RGB)", opacity, contour, noise, mode, source, choke, size, merge) + else: + self.writeParasiteRaw(drawable, fxlayer, 1, gimpcolor.RGB(255, 255, 190, 255), color, opacity, contour, noise, mode, source, choke, size, merge) + if type(color) == gimpcolor.RGB: + shelf[self.shelfkey] = { + "filltype": 0, + "color": color, + "gradient": "FG to BG (RGB)", + "opacity": opacity, + "contour": contour, + "noise": noise, + "mode": mode, + "source": source, + "choke": choke, + "size": size, + "merge": merge + } + else: + shelf[self.shelfkey] = { + "filltype": 1, + "color": gimpcolor.RGB(255, 255, 190, 255), + "gradient": color, + "opacity": opacity, + "contour": contour, + "noise": noise, + "mode": mode, + "source": source, + "choke": choke, + "size": size, + "merge": merge + } + elif runmode == RUN_WITH_LAST_VALS and shelf.has_key(self.shelfkey) == 1: + self.removeOldLayer() + fxlayer = self.makeGlow( + img, + drawable, + self.cond(shelf[self.shelfkey]["filltype"] == 0, shelf[self.shelfkey]["color"], shelf[self.shelfkey]["gradient"]), + shelf[self.shelfkey]["opacity"], + shelf[self.shelfkey]["contour"], + shelf[self.shelfkey]["noise"], + shelf[self.shelfkey]["mode"], + shelf[self.shelfkey]["source"], + shelf[self.shelfkey]["choke"], + shelf[self.shelfkey]["size"], + shelf[self.shelfkey]["merge"] + ) + if shelf[self.shelfkey]["merge"] == 0: + self.writeParasiteRaw(drawable, fxlayer, + shelf[self.shelfkey]["filltype"], + shelf[self.shelfkey]["color"], + shelf[self.shelfkey]["gradient"], + shelf[self.shelfkey]["opacity"], + shelf[self.shelfkey]["contour"], + shelf[self.shelfkey]["noise"], + shelf[self.shelfkey]["mode"], + shelf[self.shelfkey]["source"], + shelf[self.shelfkey]["choke"], + shelf[self.shelfkey]["size"], + shelf[self.shelfkey]["merge"] + ) + else: + pdb.gimp_message("unknown runmode") + pdb.gimp_message_set_handler(self.origMsgHandler) + + def showDialog(self): + self.dialog = gimpui.Dialog("Inner Glow", "innerglowdialog") + + self.parasitedata = self.readParasite(self.img, self.drawable) + + self.table = gtk.Table(8, 5, True) + self.table.set_homogeneous(True) + self.table.set_row_spacings(3) + self.table.set_col_spacings(3) + self.table.show() + + self.color_label = self.make_label("_Color:") + self.table.attach(self.color_label, 0, 1, 0, 1) + + self.color_radio = gtk.RadioButton(None, None) + self.color_radio.set_alignment(1.0, 0.5) + self.gradient_radio = gtk.RadioButton(self.color_radio, None) + self.gradient_radio.set_alignment(1.0, 0.5) + if self.parasitedata: + if self.parasitedata["filltype"] == 1: + self.gradient_radio.set_active(True) + else: + self.color_radio.set_active(True) + elif shelf.has_key(self.shelfkey) == 1: + if shelf[self.shelfkey]["filltype"] == 1: + self.gradient_radio.set_active(True) + else: + self.color_radio.set_active(True) + else: + self.color_radio.set_active(True) + self.color_radio.show() + self.gradient_radio.show() + self.color_radio.connect("toggled", self.preview) + self.gradient_radio.connect("toggled", self.preview) + + self.color_button = gimpui.ColorButton("Glow Color", 80, 0, gimpcolor.RGB(255, 255, 190, 255)) + if self.parasitedata: + self.color_button.set_color(self.parasitedata["color"]) + elif shelf.has_key(self.shelfkey) == 1: + self.color_button.set_color(shelf[self.shelfkey]["color"]) + self.color_label.set_mnemonic_widget(self.color_button) + self.color_button.show() + self.color_button.connect("color-changed", self.preview) + + self.gradient_button = gimpui.GradientSelector() + if self.parasitedata: + self.gradient_button.set_gradient(self.parasitedata["gradient"]) + elif shelf.has_key(self.shelfkey) == 1: + self.gradient_button.set_gradient(shelf[self.shelfkey]["gradient"]) + self.gradient_button.show() + self.gradient_button.connect("gradient-set", self.preview) + + self.color_hbox = gtk.HBox(False, 3) + self.color_hbox.add(self.color_radio) + self.color_hbox.add(self.color_button) + self.color_hbox.show() + + self.gradient_hbox = gtk.HBox(False, 3) + self.gradient_hbox.add(self.gradient_radio) + self.gradient_hbox.add(self.gradient_button) + self.gradient_hbox.show() + + self.table.attach(self.color_hbox, 1, 3, 0, 1) + self.table.attach(self.gradient_hbox, 3, 5, 0, 1) + + self.mode_label = self.make_label("_Blend Mode:") + self.table.attach(self.mode_label, 0, 1, 1, 2) + + self.mode_box = self.make_blend_mode_box() + if self.parasitedata: + self.mode_box.set_active(self.parasitedata["mode"]) + elif shelf.has_key(self.shelfkey) == 1: + self.mode_box.set_active(shelf[self.shelfkey]["mode"]) + else: + self.mode_box.set_active(SCREEN_MODE) + self.mode_label.set_mnemonic_widget(self.mode_box) + self.mode_box.show() + self.table.attach(self.mode_box, 1, 5, 1, 2) + self.mode_box.connect("changed", self.preview) + + self.opacity_label = self.make_label("_Opacity:") + self.table.attach(self.opacity_label, 0, 1, 2, 3) + + self.opacity_slider = self.make_slider_and_spinner(75.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.opacity_slider["adj"].set_value(self.parasitedata["opacity"]) + elif shelf.has_key(self.shelfkey) == 1: + self.opacity_slider["adj"].set_value(shelf[self.shelfkey]["opacity"]) + self.opacity_label.set_mnemonic_widget(self.opacity_slider["spinner"]) + self.table.attach(self.opacity_slider["slider"], 1, 4, 2, 3) + self.table.attach(self.opacity_slider["spinner"], 4, 5, 2, 3) + self.opacity_slider["adj"].connect("value-changed", self.preview) + + self.source_label = self.make_label("Source:") + self.table.attach(self.source_label, 0, 1, 3, 4) + + self.source_center_radio = gtk.RadioButton(None, "Cent_er", True) + self.source_edge_radio = gtk.RadioButton(self.source_center_radio, "Ed_ge", True) + if self.parasitedata: + if self.parasitedata["source"] == 0: + self.source_center_radio.set_active(True) + elif self.parasitedata["source"] == 1: + self.source_edge_radio.set_active(True) + elif shelf.has_key(self.shelfkey) == 1: + if shelf[self.shelfkey]["source"] == 0: + self.source_center_radio.set_active(True) + elif shelf[self.shelfkey]["source"] == 1: + self.source_edge_radio.set_active(True) + else: + self.source_edge_radio.set_active(True) + self.source_center_radio.show() + self.table.attach(self.source_center_radio, 1, 2, 3, 4) + self.source_edge_radio.show() + self.table.attach(self.source_edge_radio, 2, 3, 3, 4) + self.source_center_radio.connect("toggled", self.preview) + self.source_edge_radio.connect("toggled", self.preview) + + self.choke_label = self.make_label("C_hoke:") + self.table.attach(self.choke_label, 0, 1, 4, 5) + + self.choke_slider = self.make_slider_and_spinner(0.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.choke_slider["adj"].set_value(self.parasitedata["choke"]) + elif shelf.has_key(self.shelfkey) == 1: + self.choke_slider["adj"].set_value(shelf[self.shelfkey]["choke"]) + self.choke_label.set_mnemonic_widget(self.choke_slider["spinner"]) + self.table.attach(self.choke_slider["slider"], 1, 4, 4, 5) + self.table.attach(self.choke_slider["spinner"], 4, 5, 4, 5) + self.choke_slider["adj"].connect("value-changed", self.preview) + + self.size_label = self.make_label("S_ize:") + self.table.attach(self.size_label, 0, 1, 5, 6) + + self.size_slider = self.make_slider_and_spinner(5, 0, 250, 1, 10, 0) + if self.parasitedata: + self.size_slider["adj"].set_value(self.parasitedata["size"]) + elif shelf.has_key(self.shelfkey) == 1: + self.size_slider["adj"].set_value(shelf[self.shelfkey]["size"]) + self.size_label.set_mnemonic_widget(self.size_slider["spinner"]) + self.table.attach(self.size_slider["slider"], 1, 4, 5, 6) + self.table.attach(self.size_slider["spinner"], 4, 5, 5, 6) + self.size_slider["adj"].connect("value-changed", self.preview) + + self.contour_label = self.make_label("Con_tour:") + self.table.attach(self.contour_label, 0, 1, 6, 7) + + self.contour_box = self.make_contour_box() + if self.parasitedata: + self.contour_box.set_active(self.parasitedata["contour"]) + elif shelf.has_key(self.shelfkey) == 1: + self.contour_box.set_active(shelf[self.shelfkey]["contour"]) + else: + self.contour_box.set_active(0) + self.contour_label.set_mnemonic_widget(self.contour_box) + self.contour_box.show() + self.table.attach(self.contour_box, 1, 5, 6, 7) + self.contour_box.connect("changed", self.preview) + + self.noise_label = self.make_label("_Noise:") + self.table.attach(self.noise_label, 0, 1, 7, 8) + + self.noise_slider = self.make_slider_and_spinner(0.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.noise_slider["adj"].set_value(self.parasitedata["noise"]) + elif shelf.has_key(self.shelfkey) == 1: + self.noise_slider["adj"].set_value(shelf[self.shelfkey]["noise"]) + self.noise_label.set_mnemonic_widget(self.noise_slider["spinner"]) + self.table.attach(self.noise_slider["slider"], 1, 4, 7, 8) + self.table.attach(self.noise_slider["spinner"], 4, 5, 7, 8) + self.noise_slider["adj"].connect("value-changed", self.preview) + + self.merge_check = gtk.CheckButton("_Merge with layer") + if self.parasitedata: + if self.parasitedata["merge"] == 1: + self.merge_check.set_active(True) + elif shelf.has_key(self.shelfkey) == 1 and shelf[self.shelfkey]["merge"] == 1: + self.merge_check.set_active(True) + self.merge_check.show() + self.merge_check.connect("toggled", self.preview) + + self.preview_check = gtk.CheckButton("_Preview") + self.preview_check.show() + self.preview_check.connect("toggled", self.preview) + + self.dialog.vbox.hbox1 = gtk.HBox(False, 7) + self.dialog.vbox.hbox1.show() + self.dialog.vbox.pack_start(self.dialog.vbox.hbox1, True, True, 7) + self.dialog.vbox.hbox1.pack_start(self.table, True, True, 7) + self.dialog.vbox.hbox2 = gtk.HBox(False, 7) + self.dialog.vbox.hbox2.show() + self.dialog.vbox.add(self.dialog.vbox.hbox2) + self.dialog.vbox.hbox2.pack_start(self.merge_check, True, True, 10) + self.dialog.vbox.hbox3 = gtk.HBox(False, 7) + self.dialog.vbox.hbox3.show() + self.dialog.vbox.add(self.dialog.vbox.hbox3) + self.dialog.vbox.hbox3.pack_start(self.preview_check, True, True, 10) + + self.makeDialogButtons() + + self.dialog.show() + self.dialog.run() + self.removePreviews() + + def okbutton(self, widget): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + self.previewLayer = None + self.unset_hidden_layer() + if pdb.gimp_image_undo_is_enabled(self.img) == 0: + pdb.gimp_image_undo_thaw(self.img) + if self.color_radio.get_active(): + filltype = 0 + elif self.gradient_radio.get_active(): + filltype = 1 + if self.source_center_radio.get_active(): + source = 0 + elif self.source_edge_radio.get_active(): + source = 1 + params = { + "filltype": filltype, + "color": self.color_button.get_color(), + "gradient": self.gradient_button.get_gradient(), + "opacity": self.opacity_slider["adj"].get_value(), + "contour": self.contour_box.get_active(), + "noise": self.noise_slider["adj"].get_value(), + "mode": self.mode_box.get_active(), + "source": source, + "choke": self.choke_slider["adj"].get_value(), + "size": int(round(self.size_slider["adj"].get_value())), + "merge": self.cond(self.merge_check.get_active()) + } + if self.parasitedata: + self.img.remove_layer(self.parasitedata["oldid"]) + fxlayer = self.makeGlow( + self.img, + self.drawable, + self.cond(filltype == 0, params["color"], params["gradient"]), + params["opacity"], + params["contour"], + params["noise"], + params["mode"], + params["source"], + params["choke"], + params["size"], + params["merge"] + ) + if params["merge"] == 0: + self.writeParasite(self.drawable, fxlayer, + ("radio", (self.color_radio, self.gradient_radio)), + ("color", self.color_button), + ("gradient", self.gradient_button), + ("floatadj", self.opacity_slider["adj"]), + ("combobox", self.contour_box), + ("floatadj", self.noise_slider["adj"]), + ("modebox", self.mode_box), + ("radio", (self.source_center_radio, self.source_edge_radio)), + ("floatadj", self.choke_slider["adj"]), + ("intadj", self.size_slider["adj"]), + ("check", self.merge_check), + ) + shelf[self.shelfkey] = params + + def resetbutton(self, widget): + self.color_radio.set_active(True) + self.color_button.set_color(gimpcolor.RGB(255, 255, 190, 255)) + self.gradient_button.set_gradient("FG to BG (RGB)") + self.mode_box.set_active(SCREEN_MODE) + self.opacity_slider["adj"].set_value(75.0) + self.source_edge_radio.set_active(True) + self.choke_slider["adj"].set_value(0.0) + self.size_slider["adj"].set_value(5) + self.contour_box.set_active(0) + self.noise_slider["adj"].set_value(0.0) + self.merge_check.set_active(False) + + def readParasite(self, img, drawable): + return layerfx_base.readParasite(self, img, drawable, + layerfx_inner_glow.shelfkey, + ("filltype", "int"), + ("color", "color"), + ("gradient", "string"), + ("opacity", "float"), + ("contour", "int"), + ("noise", "float"), + ("mode", "int"), + ("source", "int"), + ("choke", "float"), + ("size", "int"), + ("merge", "int") + ) + + def preview(self, widget, *extra): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + if self.preview_check.get_active(): + self.unset_hidden_layer() + if pdb.gimp_image_undo_is_enabled(self.img) == 1: + pdb.gimp_image_undo_freeze(self.img) + if self.parasitedata: + self.set_hidden_layer(self.parasitedata["oldid"]) + if self.color_radio.get_active(): + filltype = 0 + elif self.gradient_radio.get_active(): + filltype = 1 + if self.source_center_radio.get_active(): + source = 0 + elif self.source_edge_radio.get_active(): + source = 1 + if self.merge_check.get_active(): + self.previewLayer = self.drawable.copy() + self.add_over_layer(self.previewLayer, self.drawable) + self.set_hidden_layer(self.drawable) + layer = self.previewLayer + merge = 1 + else: + layer = self.drawable + merge = 0 + self.previewLayer = self.makeGlow( + self.img, + layer, + self.cond(filltype == 0, self.color_button.get_color(), self.gradient_button.get_gradient()), + self.opacity_slider["adj"].get_value(), + self.contour_box.get_active(), + self.noise_slider["adj"].get_value(), + self.mode_box.get_active(), + source, + self.choke_slider["adj"].get_value(), + int(round(self.size_slider["adj"].get_value())), + merge + ) + else: + gimp.displays_flush() + + def makeGlow(self, img, drawable, color, opacity, contour, noise, mode, source, choke, size, merge): + pdb.gimp_image_undo_group_start(img) + origfgcolor = gimp.get_foreground() + origgradient = pdb.gimp_context_get_gradient() + origselection = pdb.gimp_selection_save(img) + chokeamt = (choke / 100.0) * size + steps = int(round(size - chokeamt)) + glowlayer = gimp.Layer(img, "%s-innerglow" % (drawable.name), drawable.width, drawable.height, (RGBA_IMAGE, GRAYA_IMAGE)[img.base_type], opacity, mode) + self.add_over_layer(glowlayer, drawable) + glowlayer.set_offsets(drawable.offsets[0], drawable.offsets[1]) + pdb.gimp_selection_none(img) + if type(color) == gimpcolor.RGB: + gimp.set_foreground(color) + pdb.gimp_edit_fill(glowlayer, FOREGROUND_FILL) + glowmask = glowlayer.create_mask(ADD_BLACK_MASK) + glowlayer.add_mask(glowmask) + else: + if source == 0: + gimp.set_foreground(0, 0, 0) + else: + gimp.set_foreground(255, 255, 255) + pdb.gimp_edit_fill(glowlayer, FOREGROUND_FILL) + glowmask = glowlayer + pdb.gimp_selection_layer_alpha(drawable) + if drawable.mask != None: + pdb.gimp_selection_combine(drawable.mask, CHANNEL_OP_INTERSECT) + alphaSel = pdb.gimp_selection_save(img) + if source == 1: + pdb.gimp_selection_none(img) + gimp.set_foreground(255, 255, 255) + pdb.gimp_edit_fill(glowmask, FOREGROUND_FILL) + pdb.gimp_selection_load(alphaSel) + if steps > 0: + self.draw_blurshape(glowmask, steps, (chokeamt * -1) - 1, alphaSel, True) + else: + pdb.gimp_selection_shrink(img, chokeamt) + gimp.set_foreground(0, 0, 0) + pdb.gimp_edit_fill(glowmask, FOREGROUND_FILL) + else: + if steps > 0: + self.draw_blurshape(glowmask, steps, chokeamt * -1, alphaSel, False) + else: + pdb.gimp_selection_shrink(img, chokeamt) + gimp.set_foreground(255, 255, 255) + pdb.gimp_edit_fill(glowmask, FOREGROUND_FILL) + pdb.gimp_selection_none(img) + if contour > 0: + self.apply_contour(glowmask, HISTOGRAM_VALUE, contour) + if type(color) == gimpcolor.RGB and source == 1 and merge == 0: + pdb.gimp_selection_load(alphaSel) + pdb.gimp_selection_invert(img) + gimp.set_foreground(0, 0, 0) + pdb.gimp_edit_fill(glowmask, FOREGROUND_FILL) + if noise > 0: + self.apply_noise(drawable, glowlayer, noise, type(color) != gimpcolor.RGB) + if type(color) != gimpcolor.RGB: + gimp.set_foreground(origfgcolor) + pdb.gimp_context_set_gradient(color) + pdb.gimp_selection_none(img) + pdb.gimp_invert(glowlayer) + pdb.plug_in_gradmap(img, glowlayer) + pdb.gimp_context_set_gradient(origgradient) + pdb.gimp_selection_load(alphaSel) + if merge == 0: + pdb.gimp_selection_invert(img) + pdb.gimp_edit_clear(glowlayer) + pdb.gimp_selection_invert(img) + pdb.gimp_selection_shrink(img, size) + pdb.gimp_edit_clear(glowlayer) + if glowlayer.mask != None: + glowlayer.remove_mask(MASK_APPLY) + else: + glowlayer.remove_mask(MASK_APPLY) + if merge == 1: + origmask = drawable.mask + layername = drawable.name + if origmask != None: + origmask = drawable.mask.copy() + drawable.remove_mask(MASK_DISCARD) + if source == 1 or type(color) != gimpcolor.RGB: + alphamask = drawable.create_mask(ADD_ALPHA_TRANSFER_MASK) + glowlayer = pdb.gimp_image_merge_down(img, glowlayer, EXPAND_AS_NECESSARY) + glowlayer.name = layername + if source == 1 or type(color) != gimpcolor.RGB: + glowlayer.add_mask(alphamask) + glowlayer.remove_mask(MASK_APPLY) + if origmask != None: + glowlayer.add_mask(origmask) + else: + pdb.gimp_image_set_active_layer(img, drawable) + gimp.set_foreground(origfgcolor) + pdb.gimp_selection_load(origselection) + img.remove_channel(alphaSel) + img.remove_channel(origselection) + gimp.displays_flush() + pdb.gimp_image_undo_group_end(img) + return glowlayer + +class layerfx_bevel_emboss(layerfx_base): + shelfkey = "layerfx-bevel-emboss" + + def __init__(self, runmode, img, drawable, style, depth, direction, size, soften, angle, altitude, glosscontour, highlightcolor, highlightmode, highlightopacity, shadowcolor, shadowmode, shadowopacity, surfacecontour, use_texture, pattern, scale, tex_depth, invert, merge): + self.origMsgHandler = pdb.gimp_message_get_handler() + pdb.gimp_message_set_handler(ERROR_CONSOLE) + self.img = img + self.drawable = drawable + if runmode == RUN_INTERACTIVE: + self.showDialog() + elif runmode == RUN_NONINTERACTIVE: + if self.validatedata(img, drawable, + ("intrange", style, 0, 3), + ("intrange", depth, 1, 65), + ("boolean", direction), + ("size", size), + ("intrange", soften, 0, 16), + ("angle", angle), + ("floatrange", altitude, 0.0, 90.0), + ("contour", glosscontour), + ("color", highlightcolor), + ("mode", highlightmode), + ("percent", highlightopacity), + ("color", shadowcolor), + ("mode", shadowmode), + ("percent", shadowopacity), + ("contour", surfacecontour), + ("boolean", use_texture), + ("pattern", pattern), + ("floatrange", scale, 1.0, 1000.0), + ("floatrange", tex_depth, -1000.0, 1000.0), + ("boolean", invert), + ("boolean", merge) + ): + self.removeOldLayer() + fxlayer = self.makeBevel(img, drawable, style, depth, direction, size, soften, angle, altitude, glosscontour, highlightcolor, highlightmode, highlightopacity, shadowcolor, shadowmode, shadowopacity, surfacecontour, use_texture, pattern, scale, tex_depth, invert, merge) + if merge == 0: + self.writeParasiteRaw(drawable, fxlayer, style, depth, direction, size, soften, angle, altitude, glosscontour, highlightcolor, highlightmode, highlightopacity, shadowcolor, shadowmode, shadowopacity, surfacecontour, use_texture, pattern, scale, tex_depth, invert, merge) + shelf[self.shelfkey] = { + "style": style, + "depth": depth, + "direction": direction, + "size": size, + "soften": soften, + "angle": angle, + "altitude": altitude, + "glosscontour": glosscontour, + "highlightcolor": highlightcolor, + "highlightmode": highlightmode, + "highlightopacity": highlightopacity, + "shadowcolor": shadowcolor, + "shadowmode": shadowmode, + "shadowopacity": shadowopacity, + "surfacecontour": surfacecontour, + "use_texture": use_texture, + "pattern": pattern, + "scale": scale, + "tex_depth": tex_depth, + "invert": invert, + "merge": merge + } + elif runmode == RUN_WITH_LAST_VALS and shelf.has_key(self.shelfkey) == 1: + self.removeOldLayer() + fxlayer = self.makeBevel( + img, + drawable, + shelf[self.shelfkey]["style"], + shelf[self.shelfkey]["depth"], + shelf[self.shelfkey]["direction"], + shelf[self.shelfkey]["size"], + shelf[self.shelfkey]["soften"], + shelf[self.shelfkey]["angle"], + shelf[self.shelfkey]["altitude"], + shelf[self.shelfkey]["glosscontour"], + shelf[self.shelfkey]["highlightcolor"], + shelf[self.shelfkey]["highlightmode"], + shelf[self.shelfkey]["highlightopacity"], + shelf[self.shelfkey]["shadowcolor"], + shelf[self.shelfkey]["shadowmode"], + shelf[self.shelfkey]["shadowopacity"], + shelf[self.shelfkey]["surfacecontour"], + shelf[self.shelfkey]["use_texture"], + shelf[self.shelfkey]["pattern"], + shelf[self.shelfkey]["scale"], + shelf[self.shelfkey]["tex_depth"], + shelf[self.shelfkey]["invert"], + shelf[self.shelfkey]["merge"] + ) + if shelf[self.shelfkey]["merge"] == 0: + self.writeParasiteRaw(drawable, fxlayer, + shelf[self.shelfkey]["style"], + shelf[self.shelfkey]["depth"], + shelf[self.shelfkey]["direction"], + shelf[self.shelfkey]["size"], + shelf[self.shelfkey]["soften"], + shelf[self.shelfkey]["angle"], + shelf[self.shelfkey]["altitude"], + shelf[self.shelfkey]["glosscontour"], + shelf[self.shelfkey]["highlightcolor"], + shelf[self.shelfkey]["highlightmode"], + shelf[self.shelfkey]["highlightopacity"], + shelf[self.shelfkey]["shadowcolor"], + shelf[self.shelfkey]["shadowmode"], + shelf[self.shelfkey]["shadowopacity"], + shelf[self.shelfkey]["surfacecontour"], + shelf[self.shelfkey]["use_texture"], + shelf[self.shelfkey]["pattern"], + shelf[self.shelfkey]["scale"], + shelf[self.shelfkey]["tex_depth"], + shelf[self.shelfkey]["invert"], + shelf[self.shelfkey]["merge"] + ) + else: + pdb.gimp_message("unknown runmode") + pdb.gimp_message_set_handler(self.origMsgHandler) + + def showDialog(self): + self.dialog = gimpui.Dialog("Bevel and Emboss", "bevelembossdialog") + + self.parasitedata = self.readParasite(self.img, self.drawable) + + self.structframe = gimpui.Frame("Structure") + self.structframe.show() + + self.structtable = gtk.Table(6, 6, True) + self.structtable.set_homogeneous(True) + self.structtable.set_row_spacings(3) + self.structtable.set_col_spacings(3) + self.structtable.show() + self.structframe.add(self.structtable) + + self.style_label = self.make_label("S_tyle:") + self.structtable.attach(self.style_label, 0, 2, 0, 1) + + self.style_box = self.make_combo_box("Outer Bevel", "Inner Bevel", "Emboss", "Pillow Emboss") + if self.parasitedata: + self.style_box.set_active(self.parasitedata["style"]) + elif shelf.has_key(self.shelfkey) == 1: + self.style_box.set_active(shelf[self.shelfkey]["style"]) + else: + self.style_box.set_active(0) + self.style_box.show() + self.style_label.set_mnemonic_widget(self.style_box) + self.structtable.attach(self.style_box, 2, 6, 0, 1) + self.style_box.connect("changed", self.preview) + + self.depth_label = self.make_label("_Depth:") + self.structtable.attach(self.depth_label, 0, 2, 1, 2) + + self.depth_slider = self.make_slider_and_spinner(3, 1, 65, 1, 10, 0) + if self.parasitedata: + self.depth_slider["adj"].set_value(self.parasitedata["depth"]) + elif shelf.has_key(self.shelfkey) == 1: + self.depth_slider["adj"].set_value(shelf[self.shelfkey]["depth"]) + self.depth_label.set_mnemonic_widget(self.depth_slider["spinner"]) + self.structtable.attach(self.depth_slider["slider"], 2, 5, 1, 2) + self.structtable.attach(self.depth_slider["spinner"], 5, 6, 1, 2) + self.depth_slider["adj"].connect("value-changed", self.preview) + + self.direction_label = self.make_label("Direction:") + self.structtable.attach(self.direction_label, 0, 2, 2, 3) + + self.direction_up_radio = gtk.RadioButton(None, "Up", True) + self.direction_down_radio = gtk.RadioButton(self.direction_up_radio, "Down", True) + if self.parasitedata: + if self.parasitedata["direction"] == 0: + self.direction_up_radio.set_active(True) + elif self.parasitedata["direction"] == 1: + self.direction_down_radio.set_active(True) + elif shelf.has_key(self.shelfkey) == 1: + if shelf[self.shelfkey]["direction"] == 0: + self.direction_up_radio.set_active(True) + elif shelf[self.shelfkey]["direction"] == 1: + self.direction_down_radio.set_active(True) + else: + self.direction_up_radio.set_active(True) + self.direction_up_radio.show() + self.structtable.attach(self.direction_up_radio, 2, 3, 2, 3) + self.direction_down_radio.show() + self.structtable.attach(self.direction_down_radio, 3, 4, 2, 3) + self.direction_up_radio.connect("toggled", self.preview) + self.direction_down_radio.connect("toggled", self.preview) + + self.size_label = self.make_label("S_ize:") + self.structtable.attach(self.size_label, 0, 2, 3, 4) + + self.size_slider = self.make_slider_and_spinner(5, 0, 250, 1, 10, 0) + if self.parasitedata: + self.size_slider["adj"].set_value(self.parasitedata["size"]) + elif shelf.has_key(self.shelfkey) == 1: + self.size_slider["adj"].set_value(shelf[self.shelfkey]["size"]) + self.size_label.set_mnemonic_widget(self.size_slider["spinner"]) + self.structtable.attach(self.size_slider["slider"], 2, 5, 3, 4) + self.structtable.attach(self.size_slider["spinner"], 5, 6, 3, 4) + self.size_slider["adj"].connect("value-changed", self.preview) + + self.soften_label = self.make_label("So_ften:") + self.structtable.attach(self.soften_label, 0, 2, 4, 5) + + self.soften_slider = self.make_slider_and_spinner(0, 0, 16, 1, 2, 0) + if self.parasitedata: + self.soften_slider["adj"].set_value(self.parasitedata["soften"]) + elif shelf.has_key(self.shelfkey) == 1: + self.soften_slider["adj"].set_value(shelf[self.shelfkey]["soften"]) + self.soften_label.set_mnemonic_widget(self.soften_slider["spinner"]) + self.structtable.attach(self.soften_slider["slider"], 2, 5, 4, 5) + self.structtable.attach(self.soften_slider["spinner"], 5, 6, 4, 5) + self.soften_slider["adj"].connect("value-changed", self.preview) + + self.surfacecontour_label = self.make_label("Surface Con_tour:") + self.structtable.attach(self.surfacecontour_label, 0, 2, 5, 6) + + self.surfacecontour_box = self.make_contour_box() + if self.parasitedata: + self.surfacecontour_box.set_active(self.parasitedata["surfacecontour"]) + elif shelf.has_key(self.shelfkey) == 1: + self.surfacecontour_box.set_active(shelf[self.shelfkey]["surfacecontour"]) + else: + self.surfacecontour_box.set_active(0) + self.surfacecontour_label.set_mnemonic_widget(self.surfacecontour_box) + self.surfacecontour_box.show() + self.structtable.attach(self.surfacecontour_box, 2, 6, 5, 6) + self.surfacecontour_box.connect("changed", self.preview) + + self.shadeframe = gimpui.Frame("Shading") + self.shadeframe.show() + + self.shadetable = gtk.Table(7, 6, True) + self.shadetable.set_homogeneous(True) + self.shadetable.set_row_spacings(3) + self.shadetable.set_col_spacings(3) + self.shadetable.show() + self.shadeframe.add(self.shadetable) + + self.angle_label = self.make_label("_Angle:") + self.shadetable.attach(self.angle_label, 0, 2, 0, 1) + + self.angle_slider = self.make_slider_and_spinner(120.0, -180.0, 180.0, 1.0, 10.0, 1) + if self.parasitedata: + self.angle_slider["adj"].set_value(self.parasitedata["angle"]) + elif shelf.has_key(self.shelfkey) == 1: + self.angle_slider["adj"].set_value(shelf[self.shelfkey]["angle"]) + self.angle_label.set_mnemonic_widget(self.angle_slider["spinner"]) + self.shadetable.attach(self.angle_slider["slider"], 2, 5, 0, 1) + self.shadetable.attach(self.angle_slider["spinner"], 5, 6, 0, 1) + self.angle_slider["adj"].connect("value-changed", self.preview) + + self.altitude_label = self.make_label("_Altitude:") + self.shadetable.attach(self.altitude_label, 0, 2, 1, 2) + + self.altitude_slider = self.make_slider_and_spinner(30.0, 0.0, 90.0, 1.0, 10.0, 1) + if self.parasitedata: + self.altitude_slider["adj"].set_value(self.parasitedata["altitude"]) + elif shelf.has_key(self.shelfkey) == 1: + self.altitude_slider["adj"].set_value(shelf[self.shelfkey]["altitude"]) + self.altitude_label.set_mnemonic_widget(self.altitude_slider["spinner"]) + self.shadetable.attach(self.altitude_slider["slider"], 2, 5, 1, 2) + self.shadetable.attach(self.altitude_slider["spinner"], 5, 6, 1, 2) + self.altitude_slider["adj"].connect("value-changed", self.preview) + + self.glosscontour_label = self.make_label("Gloss Con_tour:") + self.shadetable.attach(self.glosscontour_label, 0, 2, 2, 3) + + self.glosscontour_box = self.make_contour_box() + if self.parasitedata: + self.glosscontour_box.set_active(self.parasitedata["glosscontour"]) + elif shelf.has_key(self.shelfkey) == 1: + self.glosscontour_box.set_active(shelf[self.shelfkey]["glosscontour"]) + else: + self.glosscontour_box.set_active(0) + self.glosscontour_label.set_mnemonic_widget(self.glosscontour_box) + self.glosscontour_box.show() + self.shadetable.attach(self.glosscontour_box, 2, 6, 2, 3) + self.glosscontour_box.connect("changed", self.preview) + + self.highlightmode_label = self.make_label("Highlight Mode:") + self.shadetable.attach(self.highlightmode_label, 0, 2, 3, 4) + + self.highlightmode_box = self.make_blend_mode_box() + if self.parasitedata: + self.highlightmode_box.set_active(self.parasitedata["highlightmode"]) + elif shelf.has_key(self.shelfkey) == 1: + self.highlightmode_box.set_active(shelf[self.shelfkey]["highlightmode"]) + else: + self.highlightmode_box.set_active(SCREEN_MODE) + self.highlightmode_label.set_mnemonic_widget(self.highlightmode_box) + self.highlightmode_box.show() + self.shadetable.attach(self.highlightmode_box, 2, 4, 3, 4) + self.highlightmode_box.connect("changed", self.preview) + + self.highlightcolor_label = self.make_label("Color:") + self.shadetable.attach(self.highlightcolor_label, 4, 5, 3, 4) + + self.highlightcolor_button = gimpui.ColorButton("Highlight Color", 10, 10, gimpcolor.RGB(255, 255, 255, 255)) + if self.parasitedata: + self.highlightcolor_button.set_color(self.parasitedata["highlightcolor"]) + elif shelf.has_key(self.shelfkey) == 1: + self.highlightcolor_button.set_color(shelf[self.shelfkey]["highlightcolor"]) + self.highlightcolor_label.set_mnemonic_widget(self.highlightcolor_button) + self.highlightcolor_button.show() + self.shadetable.attach(self.highlightcolor_button, 5, 6, 3, 4) + self.highlightcolor_button.connect("color-changed", self.preview) + + self.highlightopacity_label = self.make_label("Highlight Opacity:") + self.shadetable.attach(self.highlightopacity_label, 0, 2, 4, 5) + + self.highlightopacity_slider = self.make_slider_and_spinner(75.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.highlightopacity_slider["adj"].set_value(self.parasitedata["highlightopacity"]) + elif shelf.has_key(self.shelfkey) == 1: + self.highlightopacity_slider["adj"].set_value(shelf[self.shelfkey]["highlightopacity"]) + self.highlightopacity_label.set_mnemonic_widget(self.highlightopacity_slider["spinner"]) + self.shadetable.attach(self.highlightopacity_slider["slider"], 2, 5, 4, 5) + self.shadetable.attach(self.highlightopacity_slider["spinner"], 5, 6, 4, 5) + self.highlightopacity_slider["adj"].connect("value-changed", self.preview) + + self.shadowmode_label = self.make_label("Shadow Mode:") + self.shadetable.attach(self.shadowmode_label, 0, 2, 5, 6) + + self.shadowmode_box = self.make_blend_mode_box() + if self.parasitedata: + self.shadowmode_box.set_active(self.parasitedata["shadowmode"]) + elif shelf.has_key(self.shelfkey) == 1: + self.shadowmode_box.set_active(shelf[self.shelfkey]["shadowmode"]) + else: + self.shadowmode_box.set_active(MULTIPLY_MODE) + self.shadowmode_label.set_mnemonic_widget(self.shadowmode_box) + self.shadowmode_box.show() + self.shadetable.attach(self.shadowmode_box, 2, 4, 5, 6) + self.shadowmode_box.connect("changed", self.preview) + + self.shadowcolor_label = self.make_label("Color:") + self.shadetable.attach(self.shadowcolor_label, 4, 5, 5, 6) + + self.shadowcolor_button = gimpui.ColorButton("Shadow Color", 10, 10, gimpcolor.RGB(0, 0, 0, 255)) + if self.parasitedata: + self.shadowcolor_button.set_color(self.parasitedata["shadowcolor"]) + elif shelf.has_key(self.shelfkey) == 1: + self.shadowcolor_button.set_color(shelf[self.shelfkey]["shadowcolor"]) + self.shadowcolor_label.set_mnemonic_widget(self.shadowcolor_button) + self.shadowcolor_button.show() + self.shadetable.attach(self.shadowcolor_button, 5, 6, 5, 6) + self.shadowcolor_button.connect("color-changed", self.preview) + + self.shadowopacity_label = self.make_label("Shadow Opacity:") + self.shadetable.attach(self.shadowopacity_label, 0, 2, 6, 7) + + self.shadowopacity_slider = self.make_slider_and_spinner(75.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.shadowopacity_slider["adj"].set_value(self.parasitedata["shadowopacity"]) + elif shelf.has_key(self.shelfkey) == 1: + self.shadowopacity_slider["adj"].set_value(shelf[self.shelfkey]["shadowopacity"]) + self.shadowopacity_label.set_mnemonic_widget(self.shadowopacity_slider["spinner"]) + self.shadetable.attach(self.shadowopacity_slider["slider"], 2, 5, 6, 7) + self.shadetable.attach(self.shadowopacity_slider["spinner"], 5, 6, 6, 7) + self.shadowopacity_slider["adj"].connect("value-changed", self.preview) + + self.textureframe = gimpui.Frame("Texture") + self.textureframe.show() + + self.texturetable = gtk.Table(4, 6, True) + self.texturetable.set_homogeneous(True) + self.texturetable.set_row_spacings(3) + self.texturetable.set_col_spacings(3) + self.texturetable.show() + self.textureframe.add(self.texturetable) + + self.use_texture_check = gtk.CheckButton("Use Texture") + if self.parasitedata: + if self.parasitedata["use_texture"] == 1: + self.use_texture_check.set_active(True) + elif shelf.has_key(self.shelfkey) == 1 and shelf[self.shelfkey]["use_texture"] == 1: + self.use_texture_check.set_active(True) + self.use_texture_check.show() + self.texturetable.attach(self.use_texture_check, 1, 3, 0, 1) + self.use_texture_check.connect("toggled", self.preview) + + self.pattern_label = self.make_label("_Pattern:") + self.texturetable.attach(self.pattern_label, 0, 1, 1, 2) + + self.pattern_hbox = gtk.HBox(False, 15) + self.pattern_hbox.show() + self.texturetable.attach(self.pattern_hbox, 1, 4, 1, 2) + + self.pattern_button = gimpui.PatternSelector() + if self.parasitedata: + self.pattern_button.set_pattern(self.parasitedata["pattern"]) + elif shelf.has_key(self.shelfkey) == 1: + self.pattern_button.set_pattern(shelf[self.shelfkey]["pattern"]) + self.pattern_label.set_mnemonic_widget(self.pattern_button) + self.pattern_button.show() + self.pattern_hbox.add(self.pattern_button) + self.pattern_button.connect("pattern-set", self.preview) + + self.invert_check = gtk.CheckButton("_Invert") + if self.parasitedata: + if self.parasitedata["invert"] == 1: + self.invert_check.set_active(True) + elif shelf.has_key(self.shelfkey) == 1 and shelf[self.shelfkey]["invert"] == 1: + self.invert_check.set_active(True) + self.invert_check.show() + self.pattern_hbox.add(self.invert_check) + self.invert_check.connect("toggled", self.preview) + + self.scale_label = self.make_label("Scale:") + self.texturetable.attach(self.scale_label, 0, 1, 2, 3) + + self.scale_slider = self.make_slider_and_spinner(100.0, 1.0, 1000.0, 1.0, 10.0, 1) + if self.parasitedata: + self.scale_slider["adj"].set_value(self.parasitedata["scale"]) + elif shelf.has_key(self.shelfkey) == 1: + self.scale_slider["adj"].set_value(shelf[self.shelfkey]["scale"]) + self.scale_label.set_mnemonic_widget(self.scale_slider["spinner"]) + self.texturetable.attach(self.scale_slider["slider"], 1, 5, 2, 3) + self.texturetable.attach(self.scale_slider["spinner"], 5, 6, 2, 3) + self.scale_slider["adj"].connect("value-changed", self.preview) + + self.tex_depth_label = self.make_label("Depth:") + self.texturetable.attach(self.tex_depth_label, 0, 1, 3, 4) + + self.tex_depth_slider = self.make_slider_and_spinner(100.0, -1000.0, 1000.0, 1.0, 10.0, 1) + if self.parasitedata: + self.tex_depth_slider["adj"].set_value(self.parasitedata["tex_depth"]) + elif shelf.has_key(self.shelfkey) == 1: + self.tex_depth_slider["adj"].set_value(shelf[self.shelfkey]["tex_depth"]) + self.tex_depth_label.set_mnemonic_widget(self.tex_depth_slider["spinner"]) + self.texturetable.attach(self.tex_depth_slider["slider"], 1, 5, 3, 4) + self.texturetable.attach(self.tex_depth_slider["spinner"], 5, 6, 3, 4) + self.tex_depth_slider["adj"].connect("value-changed", self.preview) + + self.merge_check = gtk.CheckButton("_Merge with layer") + if self.parasitedata: + if self.parasitedata["merge"] == 1: + self.merge_check.set_active(True) + elif shelf.has_key(self.shelfkey) == 1 and shelf[self.shelfkey]["merge"] == 1: + self.merge_check.set_active(True) + self.merge_check.show() + self.merge_check.connect("toggled", self.preview) + + self.preview_check = gtk.CheckButton("_Preview") + self.preview_check.show() + self.preview_check.connect("toggled", self.preview) + + self.dialog.vbox.hbox1 = gtk.HBox(False, 7) + self.dialog.vbox.hbox1.show() + self.dialog.vbox.pack_start(self.dialog.vbox.hbox1, True, True, 7) + self.dialog.vbox.hbox1.pack_start(self.structframe, True, True, 7) + self.dialog.vbox.hbox2 = gtk.HBox(False, 7) + self.dialog.vbox.hbox2.show() + self.dialog.vbox.add(self.dialog.vbox.hbox2) + self.dialog.vbox.hbox2.pack_start(self.shadeframe, True, True, 7) + self.dialog.vbox.hbox3 = gtk.HBox(False, 7) + self.dialog.vbox.hbox3.show() + self.dialog.vbox.add(self.dialog.vbox.hbox3) + self.dialog.vbox.hbox3.pack_start(self.textureframe, True, True, 7) + self.dialog.vbox.hbox4 = gtk.HBox(False, 7) + self.dialog.vbox.hbox4.show() + self.dialog.vbox.add(self.dialog.vbox.hbox4) + self.dialog.vbox.hbox4.pack_start(self.merge_check, True, True, 10) + self.dialog.vbox.hbox5 = gtk.HBox(False, 7) + self.dialog.vbox.hbox5.show() + self.dialog.vbox.add(self.dialog.vbox.hbox5) + self.dialog.vbox.hbox5.pack_start(self.preview_check, True, True, 10) + + self.makeDialogButtons() + + self.dialog.show() + self.dialog.run() + self.removePreviews() + + def okbutton(self, widget): + if self.previewLayer != None: + if type(self.previewLayer) == tuple: + if self.layer_exists(self.previewLayer[0]): + self.img.remove_layer(self.previewLayer[0]) + if self.layer_exists(self.previewLayer[1]): + self.img.remove_layer(self.previewLayer[1]) + else: + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + self.previewLayer = None + self.unset_hidden_layer() + if pdb.gimp_image_undo_is_enabled(self.img) == 0: + pdb.gimp_image_undo_thaw(self.img) + if self.direction_up_radio.get_active(): + direction = 0 + elif self.direction_down_radio.get_active(): + direction = 1 + params = { + "style": self.style_box.get_active(), + "depth": int(round(self.depth_slider["adj"].get_value())), + "direction": direction, + "size": int(round(self.size_slider["adj"].get_value())), + "soften": int(round(self.soften_slider["adj"].get_value())), + "angle": self.angle_slider["adj"].get_value(), + "altitude": self.altitude_slider["adj"].get_value(), + "glosscontour": self.glosscontour_box.get_active(), + "highlightcolor": self.highlightcolor_button.get_color(), + "highlightmode": self.highlightmode_box.get_active(), + "highlightopacity": self.highlightopacity_slider["adj"].get_value(), + "shadowcolor": self.shadowcolor_button.get_color(), + "shadowmode": self.shadowmode_box.get_active(), + "shadowopacity": self.shadowopacity_slider["adj"].get_value(), + "surfacecontour": self.surfacecontour_box.get_active(), + "use_texture": self.cond(self.use_texture_check.get_active()), + "pattern": self.pattern_button.get_pattern(), + "scale": self.scale_slider["adj"].get_value(), + "tex_depth": self.tex_depth_slider["adj"].get_value(), + "invert": self.cond(self.invert_check.get_active()), + "merge": self.cond(self.merge_check.get_active()) + } + if self.parasitedata: + self.img.remove_layer(self.parasitedata["oldid"]) + self.img.remove_layer(self.parasitedata["oldid2"]) + fxlayer = self.makeBevel( + self.img, + self.drawable, + params["style"], + params["depth"], + params["direction"], + params["size"], + params["soften"], + params["angle"], + params["altitude"], + params["glosscontour"], + params["highlightcolor"], + params["highlightmode"], + params["highlightopacity"], + params["shadowcolor"], + params["shadowmode"], + params["shadowopacity"], + params["surfacecontour"], + params["use_texture"], + params["pattern"], + params["scale"], + params["tex_depth"], + params["invert"], + params["merge"] + ) + if params["merge"] == 0: + self.writeParasite(self.drawable, fxlayer, + ("combobox", self.style_box), + ("intadj", self.depth_slider["adj"]), + ("radio", (self.direction_up_radio, self.direction_down_radio)), + ("intadj", self.size_slider["adj"]), + ("intadj", self.soften_slider["adj"]), + ("floatadj", self.angle_slider["adj"]), + ("floatadj", self.altitude_slider["adj"]), + ("combobox", self.glosscontour_box), + ("color", self.highlightcolor_button), + ("modebox", self.highlightmode_box), + ("floatadj", self.highlightopacity_slider["adj"]), + ("color", self.shadowcolor_button), + ("modebox", self.shadowmode_box), + ("floatadj", self.shadowopacity_slider["adj"]), + ("combobox", self.surfacecontour_box), + ("check", self.use_texture_check), + ("pattern", self.pattern_button), + ("floatadj", self.scale_slider["adj"]), + ("floatadj", self.tex_depth_slider["adj"]), + ("check", self.invert_check), + ("check", self.merge_check) + ) + shelf[self.shelfkey] = params + + def resetbutton(self, widget): + self.style_box.set_active(0) + self.depth_slider["adj"].set_value(3) + self.direction_up_radio.set_active(True) + self.size_slider["adj"].set_value(5) + self.soften_slider["adj"].set_value(0) + self.surfacecontour_box.set_active(0) + self.angle_slider["adj"].set_value(120.0) + self.altitude_slider["adj"].set_value(30.0) + self.glosscontour_box.set_active(0) + self.highlightcolor_button.set_color(gimpcolor.RGB(255, 255, 255, 255)) + self.highlightmode_box.set_active(SCREEN_MODE) + self.highlightopacity_slider["adj"].set_value(75.0) + self.shadowcolor_button.set_color(gimpcolor.RGB(0, 0, 0, 255)) + self.shadowmode_box.set_active(MULTIPLY_MODE) + self.shadowopacity_slider["adj"].set_value(75.0) + self.use_texture_check.set_active(False) + self.pattern_button.set_pattern(pdb.gimp_context_get_pattern()) + self.invert_check.set_active(False) + self.scale_slider["adj"].set_value(100.0) + self.tex_depth_slider["adj"].set_value(100.0) + self.merge_check.set_active(False) + + def removeOldLayer(self): + if not hasattr(self, "parasitedata"): + self.parasitedata = self.readParasite(self.img, self.drawable) + if self.parasitedata: + self.img.remove_layer(self.parasitedata["oldid"]) + self.img.remove_layer(self.parasitedata["oldid2"]) + + def preview(self, widget, *extra): + if self.previewLayer != None: + if type(self.previewLayer) == tuple: + for i in self.previewLayer: + if self.layer_exists(i): + self.img.remove_layer(i) + else: + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + if self.preview_check.get_active(): + self.unset_hidden_layer() + if pdb.gimp_image_undo_is_enabled(self.img) == 1: + pdb.gimp_image_undo_freeze(self.img) + if self.parasitedata: + self.set_hidden_layer(self.parasitedata["oldid"]) + self.set_hidden_layer(self.parasitedata["oldid2"]) + if self.direction_up_radio.get_active(): + direction = 0 + elif self.direction_down_radio.get_active(): + direction = 1 + if self.merge_check.get_active(): + self.previewLayer = self.drawable.copy() + self.add_over_layer(self.previewLayer, self.drawable) + self.set_hidden_layer(self.drawable) + layer = self.previewLayer + merge = 1 + else: + layer = self.drawable + merge = 0 + self.previewLayer = self.makeBevel( + self.img, + layer, + self.style_box.get_active(), + int(round(self.depth_slider["adj"].get_value())), + direction, + int(round(self.size_slider["adj"].get_value())), + int(round(self.soften_slider["adj"].get_value())), + self.angle_slider["adj"].get_value(), + self.altitude_slider["adj"].get_value(), + self.glosscontour_box.get_active(), + self.highlightcolor_button.get_color(), + self.highlightmode_box.get_active(), + self.highlightopacity_slider["adj"].get_value(), + self.shadowcolor_button.get_color(), + self.shadowmode_box.get_active(), + self.shadowopacity_slider["adj"].get_value(), + self.surfacecontour_box.get_active(), + self.cond(self.use_texture_check.get_active()), + self.pattern_button.get_pattern(), + self.scale_slider["adj"].get_value(), + self.tex_depth_slider["adj"].get_value(), + self.cond(self.invert_check.get_active()), + merge + ) + else: + gimp.displays_flush() + + def removePreviews(self): + if self.previewLayer != None: + if type(self.previewLayer) == tuple: + for i in self.previewLayer: + if self.layer_exists(i): + self.img.remove_layer(i) + else: + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + self.previewLayer = None + self.unset_hidden_layer() + gimp.displays_flush() + + def writeParasite(self, drawable, fxlayer, *controls): + layerfx_base.writeParasite(self, drawable, fxlayer[0], *controls) + drawable.attach_new_parasite("%s-fxlayer-s" % (self.shelfkey), 0, fxlayer[1].name) + + def writeParasiteRaw(self, drawable, fxlayer, *values): + layerfx_base.writeParasiteRaw(self, drawable, fxlayer[0], *values) + drawable.attach_new_parasite("%s-fxlayer-s" % (self.shelfkey), 0, fxlayer[1].name) + + def readParasite(self, img, drawable): + parasitedata = layerfx_base.readParasite(self, img, drawable, + layerfx_bevel_emboss.shelfkey, + ("style", "int"), + ("depth", "int"), + ("direction", "int"), + ("size", "int"), + ("soften", "int"), + ("angle", "float"), + ("altitude", "float"), + ("glosscontour", "int"), + ("highlightcolor", "color"), + ("highlightmode", "int"), + ("highlightopacity", "float"), + ("shadowcolor", "color"), + ("shadowmode", "int"), + ("shadowopacity", "float"), + ("surfacecontour", "int"), + ("use_texture", "int"), + ("pattern", "string"), + ("scale", "float"), + ("tex_depth", "float"), + ("invert", "int"), + ("merge", "int") + ) + if parasitedata: + fxlayername = "%s-fxlayer-s" % (self.shelfkey) + if fxlayername in pdb.gimp_drawable_parasite_list(drawable)[1]: + fxlayername = pdb.gimp_drawable_parasite_find(drawable, fxlayername).data + for i in img.layers: + if i.name == fxlayername: + parasitedata.update({"oldid2": i}) + break + return parasitedata + + def makeBevel(self, img, drawable, style, depth, direction, size, soften, angle, altitude, glosscontour, highlightcolor, highlightmode, highlightopacity, shadowcolor, shadowmode, shadowopacity, surfacecontour, use_texture, pattern, scale, tex_depth, invert, merge): + pdb.gimp_image_undo_group_start(img) + origfgcolor = gimp.get_foreground() + origselection = pdb.gimp_selection_save(img) + imgtype = (RGBA_IMAGE, GRAYA_IMAGE)[img.base_type] + lyrgrowamt = int(round(size * 1.2)) + if style == 0: + layersize = { + "width": drawable.width + (lyrgrowamt * 2), + "height": drawable.height + (lyrgrowamt * 2), + "offsetx": drawable.offsets[0] - lyrgrowamt, + "offsety": drawable.offsets[1] - lyrgrowamt + } + elif style == 1: + layersize = { + "width": drawable.width, + "height": drawable.height, + "offsetx": drawable.offsets[0], + "offsety": drawable.offsets[1] + } + elif style == 2 or style == 3: + layersize = { + "width": drawable.width + lyrgrowamt, + "height": drawable.height + lyrgrowamt, + "offsetx": drawable.offsets[0] - int(lyrgrowamt/2), + "offsety": drawable.offsets[1] - int(lyrgrowamt/2) + } + bumpmaplayer = gimp.Layer(img, "%s-bumpmap" % (drawable.name), layersize["width"], layersize["height"], imgtype, 100.0, NORMAL_MODE) + highlightlayer = gimp.Layer(img, "%s-highlight" % (drawable.name), layersize["width"], layersize["height"], imgtype, highlightopacity, highlightmode) + shadowlayer = gimp.Layer(img, "%s-shadow" % (drawable.name), layersize["width"], layersize["height"], imgtype, shadowopacity, shadowmode) + self.add_over_layer(bumpmaplayer, drawable) + self.add_over_layer(shadowlayer, bumpmaplayer) + self.add_over_layer(highlightlayer, shadowlayer) + bumpmaplayer.set_offsets(layersize["offsetx"], layersize["offsety"]) + shadowlayer.set_offsets(layersize["offsetx"], layersize["offsety"]) + highlightlayer.set_offsets(layersize["offsetx"], layersize["offsety"]) + pdb.gimp_selection_none(img) + gimp.set_foreground(highlightcolor) + pdb.gimp_edit_fill(highlightlayer, FOREGROUND_FILL) + gimp.set_foreground(shadowcolor) + pdb.gimp_edit_fill(shadowlayer, FOREGROUND_FILL) + gimp.set_foreground(0, 0, 0) + pdb.gimp_edit_fill(bumpmaplayer, FOREGROUND_FILL) + highlightmask = highlightlayer.create_mask(ADD_BLACK_MASK) + shadowmask = shadowlayer.create_mask(ADD_BLACK_MASK) + highlightlayer.add_mask(highlightmask) + shadowlayer.add_mask(shadowmask) + pdb.gimp_selection_layer_alpha(drawable) + if drawable.mask != None: + pdb.gimp_selection_combine(drawable.mask, CHANNEL_OP_INTERSECT) + alphaSel = pdb.gimp_selection_save(img) + if style == 0: + self.draw_blurshape(bumpmaplayer, size, size, alphaSel, False) + elif style == 1: + self.draw_blurshape(bumpmaplayer, size, 0, alphaSel, False) + elif style == 2: + halfsizef = int(math.floor(size/2.0)) + halfsizec = size - halfsizef + self.draw_blurshape(bumpmaplayer, size, int(math.ceil(size/2.0)), alphaSel, False) + elif style == 3: + halfsizef = int(math.floor(size/2.0)) + halfsizec = size - halfsizef + pdb.gimp_selection_none(img) + gimp.set_foreground(255, 255, 255) + pdb.gimp_edit_fill(bumpmaplayer, FOREGROUND_FILL) + self.draw_blurshape(bumpmaplayer, halfsizec, halfsizec, alphaSel, True) + self.draw_blurshape(bumpmaplayer, halfsizef, 0, alphaSel, False) + pdb.gimp_selection_none(img) + if use_texture == 1: + texturelayer = gimp.Layer(img, "%s-texture" % (drawable.name), int(round(layersize["width"]/(scale/100.0))), int(round(layersize["height"]/(scale/100.0))), imgtype, 100.0, MULTIPLY_MODE) + self.add_over_layer(texturelayer, bumpmaplayer) + texturelayer.set_offsets(bumpmaplayer.offsets[0], bumpmaplayer.offsets[1]) + origpattern = pdb.gimp_context_get_pattern() + pdb.gimp_context_set_pattern(pattern) + texturelayer.fill(PATTERN_FILL) + pdb.gimp_context_set_pattern(origpattern) + if img.base_type == RGB: + pdb.gimp_desaturate_full(texturelayer, DESATURATE_LUMINOSITY) + if tex_depth >= 0.0: + if tex_depth <= 100.0: + contrastadj = int(round((1-(tex_depth/100.0)) * -127)) + else: + contrastadj = int(round(((tex_depth-100.0)/900.0) * 127)) + else: + pdb.gimp_invert(texturelayer) + if tex_depth >= -100.0: + contrastadj = int(round((1-(abs(tex_depth)/100.0)) * -127)) + else: + contrastadj = int(round(((abs(tex_depth)-100.0)/900.0) * 127)) + pdb.gimp_brightness_contrast(texturelayer, 0, contrastadj) + if scale != 100.0: + pdb.gimp_drawable_transform_scale(texturelayer, bumpmaplayer.offsets[0], bumpmaplayer.offsets[1], bumpmaplayer.offsets[0] + layersize["width"], bumpmaplayer.offsets[1] + layersize["height"], TRANSFORM_FORWARD, INTERPOLATION_LANCZOS, 1, 3, TRANSFORM_RESIZE_ADJUST) + bumpmaplayer = pdb.gimp_image_merge_down(img, texturelayer, EXPAND_AS_NECESSARY) + gimp.set_foreground(127, 127, 127) + pdb.gimp_edit_fill(highlightmask, FOREGROUND_FILL) + if surfacecontour > 0: + self.apply_contour(bumpmaplayer, HISTOGRAM_VALUE, surfacecontour) + if angle < 0: + angle += 360.0 + pdb.plug_in_bump_map(img, highlightmask, bumpmaplayer, angle, altitude, depth, 0, 0, 0, 0, 1, direction, 0) + if glosscontour > 0: + self.apply_contour(highlightmask, HISTOGRAM_VALUE, glosscontour) + if soften > 0: + pdb.plug_in_gauss_rle(img, highlightmask, soften, 1, 1) + if use_texture == 1 and invert > 0: + pdb.gimp_invert(highlightmask) + pdb.gimp_channel_combine_masks(shadowmask, highlightmask, CHANNEL_OP_REPLACE, 0, 0) + pdb.gimp_levels(highlightmask, HISTOGRAM_VALUE, 127, 255, 1.0, 0, 255) + pdb.gimp_levels(shadowmask, HISTOGRAM_VALUE, 0, 127, 1.0, 255, 0) + pdb.gimp_selection_load(alphaSel) + if style == 0: + pdb.gimp_selection_grow(img, size) + elif style == 2 or style == 3: + pdb.gimp_selection_grow(img, halfsizec) + pdb.gimp_selection_invert(img) + gimp.set_foreground(0, 0, 0) + pdb.gimp_edit_fill(shadowmask, FOREGROUND_FILL) + pdb.gimp_selection_none(img) + img.remove_layer(bumpmaplayer) + if merge == 1: + if style == 1: + origmask = drawable.mask + layername = drawable.name + if origmask != None: + origmask = drawable.mask.copy() + drawable.remove_mask(MASK_DISCARD) + alphamask = drawable.create_mask(ADD_ALPHA_TRANSFER_MASK) + shadowlayer = pdb.gimp_image_merge_down(img, shadowlayer, EXPAND_AS_NECESSARY) + highlightlayer = pdb.gimp_image_merge_down(img, highlightlayer, EXPAND_AS_NECESSARY) + highlightlayer.name = layername + highlightlayer.add_mask(alphamask) + highlightlayer.remove_mask(MASK_APPLY) + if origmask != None: + highlightlayer.add_mask(origmask) + else: + origmask = drawable.mask + layername = drawable.name + if origmask != None: + drawable.remove_mask(MASK_APPLY) + shadowlayer = pdb.gimp_image_merge_down(img, shadowlayer, EXPAND_AS_NECESSARY) + highlightlayer = pdb.gimp_image_merge_down(img, highlightlayer, EXPAND_AS_NECESSARY) + highlightlayer.name = layername + else: + highlightlayer.remove_mask(MASK_APPLY) + shadowlayer.remove_mask(MASK_APPLY) + pdb.gimp_image_set_active_layer(img, drawable) + gimp.set_foreground(origfgcolor) + pdb.gimp_selection_load(origselection) + img.remove_channel(alphaSel) + img.remove_channel(origselection) + gimp.displays_flush() + pdb.gimp_image_undo_group_end(img) + if merge == 0: + return (highlightlayer, shadowlayer) + else: + return highlightlayer + +class layerfx_satin(layerfx_base): + shelfkey = "layerfx-satin" + + def __init__(self, runmode, img, drawable, color, opacity, mode, offsetangle, offsetdist, size, contour, invert, merge): + self.origMsgHandler = pdb.gimp_message_get_handler() + pdb.gimp_message_set_handler(ERROR_CONSOLE) + self.img = img + self.drawable = drawable + if runmode == RUN_INTERACTIVE: + self.showDialog() + elif runmode == RUN_NONINTERACTIVE: + if self.validatedata(img, drawable, + ("color", color), + ("percent", opacity), + ("mode", mode), + ("angle", offsetangle), + ("floatrange", offsetdist, 0.0, 30000.0), + ("size", size), + ("contour", contour), + ("boolean", invert), + ("boolean", merge) + ): + self.removeOldLayer() + fxlayer = self.makeSatin(img, drawable, color, opacity, mode, offsetangle, offsetdist, size, contour, invert, merge) + if merge == 0: + self.writeParasiteRaw(drawable, fxlayer, color, opacity, mode, offsetangle, offsetdist, size, contour, invert, merge) + shelf[self.shelfkey] = { + "color": color, + "opacity": opacity, + "mode": mode, + "offsetangle": offsetangle, + "offsetdist": offsetdist, + "size": size, + "contour": contour, + "invert": invert, + "merge": merge + } + elif runmode == RUN_WITH_LAST_VALS and shelf.has_key(self.shelfkey) == 1: + self.removeOldLayer() + fxlayer = self.makeSatin( + img, + drawable, + shelf[self.shelfkey]["color"], + shelf[self.shelfkey]["opacity"], + shelf[self.shelfkey]["mode"], + shelf[self.shelfkey]["offsetangle"], + shelf[self.shelfkey]["offsetdist"], + shelf[self.shelfkey]["size"], + shelf[self.shelfkey]["contour"], + shelf[self.shelfkey]["invert"], + shelf[self.shelfkey]["merge"] + ) + if shelf[self.shelfkey]["merge"] == 0: + self.writeParasiteRaw(drawable, fxlayer, + shelf[self.shelfkey]["color"], + shelf[self.shelfkey]["opacity"], + shelf[self.shelfkey]["mode"], + shelf[self.shelfkey]["offsetangle"], + shelf[self.shelfkey]["offsetdist"], + shelf[self.shelfkey]["size"], + shelf[self.shelfkey]["contour"], + shelf[self.shelfkey]["invert"], + shelf[self.shelfkey]["merge"] + ) + else: + pdb.gimp_message("unknown runmode") + pdb.gimp_message_set_handler(self.origMsgHandler) + + def showDialog(self): + self.dialog = gimpui.Dialog("Satin", "satindialog") + + self.parasitedata = self.readParasite(self.img, self.drawable) + + self.table = gtk.Table(7, 5, True) + self.table.set_homogeneous(True) + self.table.set_row_spacings(3) + self.table.set_col_spacings(3) + self.table.show() + + self.color_label = self.make_label("_Color:") + self.table.attach(self.color_label, 0, 1, 0, 1) + + self.color_button = gimpui.ColorButton("Satin Color", 10, 10, gimpcolor.RGB(0, 0, 0, 255)) + if self.parasitedata: + self.color_button.set_color(self.parasitedata["color"]) + elif shelf.has_key(self.shelfkey) == 1: + self.color_button.set_color(shelf[self.shelfkey]["color"]) + self.color_label.set_mnemonic_widget(self.color_button) + self.color_button.show() + self.table.attach(self.color_button, 1, 2, 0, 1) + self.color_button.connect("color-changed", self.preview) + + self.mode_label = self.make_label("_Blend Mode:") + self.table.attach(self.mode_label, 0, 1, 1, 2) + + self.mode_box = self.make_blend_mode_box() + if self.parasitedata: + self.mode_box.set_active(self.parasitedata["mode"]) + elif shelf.has_key(self.shelfkey) == 1: + self.mode_box.set_active(shelf[self.shelfkey]["mode"]) + else: + self.mode_box.set_active(MULTIPLY_MODE) + self.mode_label.set_mnemonic_widget(self.mode_box) + self.mode_box.show() + self.table.attach(self.mode_box, 1, 5, 1, 2) + self.mode_box.connect("changed", self.preview) + + self.opacity_label = self.make_label("_Opacity:") + self.table.attach(self.opacity_label, 0, 1, 2, 3) + + self.opacity_slider = self.make_slider_and_spinner(75.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.opacity_slider["adj"].set_value(self.parasitedata["opacity"]) + elif shelf.has_key(self.shelfkey) == 1: + self.opacity_slider["adj"].set_value(shelf[self.shelfkey]["opacity"]) + self.opacity_label.set_mnemonic_widget(self.opacity_slider["spinner"]) + self.table.attach(self.opacity_slider["slider"], 1, 4, 2, 3) + self.table.attach(self.opacity_slider["spinner"], 4, 5, 2, 3) + self.opacity_slider["adj"].connect("value-changed", self.preview) + + self.angle_label = self.make_label("_Angle:") + self.table.attach(self.angle_label, 0, 1, 3, 4) + + self.angle_slider = self.make_slider_and_spinner(19.0, -180.0, 180.0, 1.0, 10.0, 1) + if self.parasitedata: + self.angle_slider["adj"].set_value(self.parasitedata["offsetangle"]) + elif shelf.has_key(self.shelfkey) == 1: + self.angle_slider["adj"].set_value(shelf[self.shelfkey]["offsetangle"]) + self.angle_label.set_mnemonic_widget(self.angle_slider["spinner"]) + self.table.attach(self.angle_slider["slider"], 1, 4, 3, 4) + self.table.attach(self.angle_slider["spinner"], 4, 5, 3, 4) + self.angle_slider["adj"].connect("value-changed", self.preview) + + self.distance_label = self.make_label("_Distance:") + self.table.attach(self.distance_label, 0, 1, 4, 5) + + self.distance_spinner = self.make_spinner(11.0, 0.0, 30000.0, 1.0, 10.0, 1) + if self.parasitedata: + self.distance_spinner["adj"].set_value(self.parasitedata["offsetdist"]) + elif shelf.has_key(self.shelfkey) == 1: + self.distance_spinner["adj"].set_value(shelf[self.shelfkey]["offsetdist"]) + self.distance_label.set_mnemonic_widget(self.distance_spinner["spinner"]) + self.table.attach(self.distance_spinner["spinner"], 1, 2, 4, 5) + self.distance_spinner["adj"].connect("value-changed", self.preview) + + self.size_label = self.make_label("S_ize:") + self.table.attach(self.size_label, 0, 1, 5, 6) + + self.size_slider = self.make_slider_and_spinner(14, 0, 250, 1, 10, 0) + if self.parasitedata: + self.size_slider["adj"].set_value(self.parasitedata["size"]) + elif shelf.has_key(self.shelfkey) == 1: + self.size_slider["adj"].set_value(shelf[self.shelfkey]["size"]) + self.size_label.set_mnemonic_widget(self.size_slider["spinner"]) + self.table.attach(self.size_slider["slider"], 1, 4, 5, 6) + self.table.attach(self.size_slider["spinner"], 4, 5, 5, 6) + self.size_slider["adj"].connect("value-changed", self.preview) + + self.contour_label = self.make_label("Con_tour:") + self.table.attach(self.contour_label, 0, 1, 6, 7) + + self.contour_box = self.make_contour_box() + if self.parasitedata: + self.contour_box.set_active(self.parasitedata["contour"]) + elif shelf.has_key(self.shelfkey) == 1: + self.contour_box.set_active(shelf[self.shelfkey]["contour"]) + else: + self.contour_box.set_active(5) + self.contour_label.set_mnemonic_widget(self.contour_box) + self.contour_box.show() + self.table.attach(self.contour_box, 1, 5, 6, 7) + self.contour_box.connect("changed", self.preview) + + self.invert_check = gtk.CheckButton("Invert") + if self.parasitedata: + if self.parasitedata["invert"] == 0: + self.invert_check.set_active(False) + else: + self.invert_check.set_active(True) + elif shelf.has_key(self.shelfkey) == 1 and shelf[self.shelfkey]["invert"] == 0: + self.invert_check.set_active(False) + else: + self.invert_check.set_active(True) + self.invert_check.show() + self.invert_check.connect("toggled", self.preview) + + self.merge_check = gtk.CheckButton("_Merge with layer") + if self.parasitedata: + if self.parasitedata["merge"] == 1: + self.merge_check.set_active(True) + elif shelf.has_key(self.shelfkey) == 1 and shelf[self.shelfkey]["merge"] == 1: + self.merge_check.set_active(True) + self.merge_check.show() + self.merge_check.connect("toggled", self.preview) + + self.preview_check = gtk.CheckButton("_Preview") + self.preview_check.show() + self.preview_check.connect("toggled", self.preview) + + self.dialog.vbox.hbox1 = gtk.HBox(False, 7) + self.dialog.vbox.hbox1.show() + self.dialog.vbox.pack_start(self.dialog.vbox.hbox1, True, True, 7) + self.dialog.vbox.hbox1.pack_start(self.table, True, True, 7) + self.dialog.vbox.hbox2 = gtk.HBox(False, 7) + self.dialog.vbox.hbox2.show() + self.dialog.vbox.add(self.dialog.vbox.hbox2) + self.dialog.vbox.hbox2.pack_start(self.invert_check, True, True, 10) + self.dialog.vbox.hbox3 = gtk.HBox(False, 7) + self.dialog.vbox.hbox3.show() + self.dialog.vbox.add(self.dialog.vbox.hbox3) + self.dialog.vbox.hbox3.pack_start(self.merge_check, True, True, 10) + self.dialog.vbox.hbox4 = gtk.HBox(False, 7) + self.dialog.vbox.hbox4.show() + self.dialog.vbox.add(self.dialog.vbox.hbox4) + self.dialog.vbox.hbox4.pack_start(self.preview_check, True, True, 10) + + self.makeDialogButtons() + + self.dialog.show() + self.dialog.run() + self.removePreviews() + + def okbutton(self, widget): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + self.previewLayer = None + self.unset_hidden_layer() + if pdb.gimp_image_undo_is_enabled(self.img) == 0: + pdb.gimp_image_undo_thaw(self.img) + params = { + "color": self.color_button.get_color(), + "opacity": self.opacity_slider["adj"].get_value(), + "mode": self.mode_box.get_active(), + "offsetangle": self.angle_slider["adj"].get_value(), + "offsetdist": self.distance_spinner["adj"].get_value(), + "size": int(round(self.size_slider["adj"].get_value())), + "contour": self.contour_box.get_active(), + "invert": self.cond(self.invert_check.get_active()), + "merge": self.cond(self.merge_check.get_active()) + } + if self.parasitedata: + self.img.remove_layer(self.parasitedata["oldid"]) + fxlayer = self.makeSatin( + self.img, + self.drawable, + params["color"], + params["opacity"], + params["mode"], + params["offsetangle"], + params["offsetdist"], + params["size"], + params["contour"], + params["invert"], + params["merge"] + ) + if params["merge"] == 0: + self.writeParasite(self.drawable, fxlayer, + ("color", self.color_button), + ("floatadj", self.opacity_slider["adj"]), + ("modebox", self.mode_box), + ("floatadj", self.angle_slider["adj"]), + ("floatadj", self.distance_spinner["adj"]), + ("intadj", self.size_slider["adj"]), + ("combobox", self.contour_box), + ("check", self.invert_check), + ("check", self.merge_check) + ) + shelf[self.shelfkey] = params + + def resetbutton(self, widget): + self.color_button.set_color(gimpcolor.RGB(0, 0, 0, 255)) + self.mode_box.set_active(MULTIPLY_MODE) + self.opacity_slider["adj"].set_value(75.0) + self.angle_slider["adj"].set_value(19.0) + self.distance_spinner["adj"].set_value(11.0) + self.size_slider["adj"].set_value(14) + self.contour_box.set_active(5) + self.invert_check.set_active(True) + self.merge_check.set_active(False) + + def readParasite(self, img, drawable): + return layerfx_base.readParasite(self, img, drawable, + layerfx_satin.shelfkey, + ("color", "color"), + ("opacity", "float"), + ("mode", "int"), + ("offsetangle", "float"), + ("offsetdist", "float"), + ("size", "int"), + ("contour", "int"), + ("invert", "int"), + ("merge", "int") + ) + + def preview(self, widget): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + if self.preview_check.get_active(): + self.unset_hidden_layer() + if pdb.gimp_image_undo_is_enabled(self.img) == 1: + pdb.gimp_image_undo_freeze(self.img) + if self.parasitedata: + self.set_hidden_layer(self.parasitedata["oldid"]) + if self.merge_check.get_active(): + self.previewLayer = self.drawable.copy() + self.add_over_layer(self.previewLayer, self.drawable) + self.set_hidden_layer(self.drawable) + layer = self.previewLayer + merge = 1 + else: + layer = self.drawable + merge = 0 + self.previewLayer = self.makeSatin( + self.img, + layer, + self.color_button.get_color(), + self.opacity_slider["adj"].get_value(), + self.mode_box.get_active(), + self.angle_slider["adj"].get_value(), + self.distance_spinner["adj"].get_value(), + int(round(self.size_slider["adj"].get_value())), + self.contour_box.get_active(), + self.cond(self.invert_check.get_active()), + merge + ) + else: + gimp.displays_flush() + + def makeSatin(self, img, drawable, color, opacity, mode, offsetangle, offsetdist, size, contour, invert, merge): + pdb.gimp_image_undo_group_start(img) + origfgcolor = gimp.get_foreground() + origselection = pdb.gimp_selection_save(img) + growamt = int(math.ceil(size / 2.0)) + lyrgrowamt = int(round(growamt * 1.2)) + satinlayer = gimp.Layer(img, "%s-satin" % (drawable.name), drawable.width + (lyrgrowamt * 2), drawable.height + (lyrgrowamt * 2), (RGBA_IMAGE, GRAYA_IMAGE)[img.base_type], 100, NORMAL_MODE) + ang = ((offsetangle + 180) * -1) * (math.pi / 180.0) + offset = (int(round(offsetdist * math.cos(ang))), int(round(offsetdist * math.sin(ang)))) + self.add_over_layer(satinlayer, drawable) + satinlayer.set_offsets(drawable.offsets[0] - lyrgrowamt, drawable.offsets[1] - lyrgrowamt) + pdb.gimp_selection_none(img) + gimp.set_foreground(0, 0, 0) + pdb.gimp_edit_fill(satinlayer, FOREGROUND_FILL) + pdb.gimp_selection_layer_alpha(drawable) + if drawable.mask != None: + pdb.gimp_selection_combine(drawable.mask, CHANNEL_OP_INTERSECT) + alphaSel = pdb.gimp_selection_save(img) + self.draw_blurshape(satinlayer, size, growamt, alphaSel, False) + pdb.plug_in_autocrop_layer(img, satinlayer) + satinmask = satinlayer.copy(0) + self.add_over_layer(satinmask, satinlayer) + satinlayer.translate(offset[0], offset[1]) + satinmask.translate(offset[0] * -1, offset[1] * -1) + dx = max(satinlayer.offsets[0], satinmask.offsets[0]) - min(satinlayer.offsets[0], satinmask.offsets[0]) + dy = max(satinlayer.offsets[1], satinmask.offsets[1]) - min(satinlayer.offsets[1], satinmask.offsets[1]) + blacklayer = gimp.Layer(img, "%s-satinblank" % (drawable.name), satinlayer.width + dx, satinlayer.height + dy, (RGBA_IMAGE, GRAYA_IMAGE)[img.base_type], 100, NORMAL_MODE) + self.add_under_layer(blacklayer, satinlayer) + blacklayer.set_offsets(min(satinlayer.offsets[0], satinmask.offsets[0]), min(satinlayer.offsets[1], satinmask.offsets[1])) + pdb.gimp_selection_none(img) + gimp.set_foreground(0, 0, 0) + pdb.gimp_edit_fill(blacklayer, FOREGROUND_FILL) + satinmask.mode = DIFFERENCE_MODE + satinlayer = pdb.gimp_image_merge_down(img, satinlayer, EXPAND_AS_NECESSARY) + satinlayer = pdb.gimp_image_merge_down(img, satinmask, EXPAND_AS_NECESSARY) + satinlayer.name = "%s-satin" % (drawable.name) + if contour > 0: + self.apply_contour(satinlayer, HISTOGRAM_VALUE, contour) + pdb.gimp_selection_load(alphaSel) + pdb.gimp_selection_grow(img, size) + pdb.gimp_selection_invert(img) + gimp.set_foreground(0, 0, 0) + pdb.gimp_edit_fill(satinlayer, FOREGROUND_FILL) + pdb.gimp_selection_none(img) + if invert == 1: + pdb.gimp_invert(satinlayer) + satinmask = satinlayer.create_mask(ADD_COPY_MASK) + satinlayer.add_mask(satinmask) + pdb.gimp_selection_none(img) + gimp.set_foreground(color) + pdb.gimp_edit_fill(satinlayer, FOREGROUND_FILL) + satinlayer.opacity = opacity + pdb.gimp_layer_set_mode(satinlayer, mode) + satinlayer.resize(drawable.width, drawable.height, satinlayer.offsets[0] - drawable.offsets[0], satinlayer.offsets[1] - drawable.offsets[1]) + if merge == 1: + origmask = drawable.mask + layername = drawable.name + if origmask != None: + origmask = drawable.mask.copy() + drawable.remove_mask(MASK_DISCARD) + alphamask = drawable.create_mask(ADD_ALPHA_TRANSFER_MASK) + satinlayer = pdb.gimp_image_merge_down(img, satinlayer, EXPAND_AS_NECESSARY) + satinlayer.name = layername + satinlayer.add_mask(alphamask) + satinlayer.remove_mask(MASK_APPLY) + if origmask != None: + satinlayer.add_mask(origmask) + else: + pdb.gimp_selection_load(alphaSel) + pdb.gimp_selection_invert(img) + gimp.set_foreground(0, 0, 0) + pdb.gimp_edit_fill(satinmask, FOREGROUND_FILL) + satinlayer.remove_mask(MASK_APPLY) + pdb.gimp_image_set_active_layer(img, drawable) + gimp.set_foreground(origfgcolor) + pdb.gimp_selection_load(origselection) + img.remove_channel(alphaSel) + img.remove_channel(origselection) + gimp.displays_flush() + pdb.gimp_image_undo_group_end(img) + return satinlayer + +class layerfx_stroke(layerfx_base): + shelfkey = "layerfx-stroke" + + def __init__(self, runmode, img, drawable, fill, opacity, mode, size, position, merge): + self.origMsgHandler = pdb.gimp_message_get_handler() + pdb.gimp_message_set_handler(ERROR_CONSOLE) + self.img = img + self.drawable = drawable + if runmode == RUN_INTERACTIVE: + self.showDialog() + elif runmode == RUN_NONINTERACTIVE: + if self.validatedata(img, drawable, + ("color/gradientdata/patterndata", fill), + ("percent", opacity), + ("mode", mode), + ("size", size), + ("percent", position), + ("boolean", merge) + ): + self.removeOldLayer() + fxlayer = self.makeStroke(img, drawable, fill, opacity, mode, size, position, merge) + if type(fill) == gimpcolor.RGB: + params = { + "filltype": 0, + "color": fill, + "gradient": "FG to BG (RGB)", + "gradienttype": 0, + "repeat": 0, + "reverse": False, + "centerx": 0.0, + "centery": 0.0, + "angle": 90.0, + "width": 0.0, + "pattern": pdb.gimp_context_get_pattern(), + "scale": 100.0, + "interpolation_type": 0 + } + elif (type(fill) == tuple or type(fill) == list) and len(fill) == 8: + params = { + "filltype": 1, + "color": gimpcolor.RGB(255, 0, 0, 255), + "gradient": fill[0], + "gradienttype": fill[1], + "repeat": fill[2], + "reverse": fill[3], + "centerx": fill[4], + "centery": fill[5], + "angle": fill[6], + "width": fill[7], + "pattern": pdb.gimp_context_get_pattern(), + "scale": 100.0, + "interpolation_type": 0 + } + elif (type(fill) == tuple or type(fill) == list) and len(fill) == 3: + params = { + "filltype": 2, + "color": gimpcolor.RGB(255, 0, 0, 255), + "gradient": "FG to BG (RGB)", + "gradienttype": 0, + "repeat": 0, + "reverse": False, + "centerx": 0.0, + "centery": 0.0, + "angle": 90.0, + "width": 0.0, + "pattern": fill[0], + "scale": fill[1], + "interpolation_type": fill[2] + } + params.update({ + "opacity": opacity, + "mode": mode, + "size": size, + "position": position, + "merge": merge + }) + if merge == 0: + self.writeParasiteRaw(drawable, fxlayer, + params["filltype"], + params["color"], + params["gradient"], + params["gradienttype"], + params["repeat"], + params["reverse"], + params["centerx"], + params["centery"], + params["angle"], + params["width"], + params["pattern"], + params["scale"], + params["interpolation_type"], + opacity, + mode, + size, + position, + merge + ) + shelf[self.shelfkey] = params + elif runmode == RUN_WITH_LAST_VALS and shelf.has_key(self.shelfkey) == 1: + self.removeOldLayer() + if shelf[self.shelfkey]["filltype"] == 0: + fill = shelf[self.shelfkey]["color"] + elif shelf[self.shelfkey]["filltype"] == 1: + fill = ( + shelf[self.shelfkey]["gradient"], + shelf[self.shelfkey]["gradienttype"], + shelf[self.shelfkey]["repeat"], + shelf[self.shelfkey]["reverse"], + shelf[self.shelfkey]["centerx"], + shelf[self.shelfkey]["centery"], + shelf[self.shelfkey]["angle"], + shelf[self.shelfkey]["width"] + ) + elif shelf[self.shelfkey]["filltype"] == 2: + fill = ( + shelf[self.shelfkey]["pattern"], + shelf[self.shelfkey]["scale"], + shelf[self.shelfkey]["interpolation_type"] + ) + fxlayer = self.makeStroke( + img, + drawable, + fill, + shelf[self.shelfkey]["opacity"], + shelf[self.shelfkey]["mode"], + shelf[self.shelfkey]["size"], + shelf[self.shelfkey]["position"], + shelf[self.shelfkey]["merge"] + ) + if shelf[self.shelfkey]["merge"] == 0: + self.writeParasiteRaw(drawable, fxlayer, + shelf[self.shelfkey]["filltype"], + shelf[self.shelfkey]["color"], + shelf[self.shelfkey]["gradient"], + shelf[self.shelfkey]["gradienttype"], + shelf[self.shelfkey]["repeat"], + shelf[self.shelfkey]["reverse"], + shelf[self.shelfkey]["centerx"], + shelf[self.shelfkey]["centery"], + shelf[self.shelfkey]["angle"], + shelf[self.shelfkey]["width"], + shelf[self.shelfkey]["pattern"], + shelf[self.shelfkey]["scale"], + shelf[self.shelfkey]["interpolation_type"], + shelf[self.shelfkey]["opacity"], + shelf[self.shelfkey]["mode"], + shelf[self.shelfkey]["size"], + shelf[self.shelfkey]["position"], + shelf[self.shelfkey]["merge"] + ) + else: + pdb.gimp_message("unknown runmode") + pdb.gimp_message_set_handler(self.origMsgHandler) + + def showDialog(self): + self.dialog = gimpui.Dialog("Stroke", "strokedialog") + + self.parasitedata = self.readParasite(self.img, self.drawable) + + self.table = gtk.Table(5, 5, True) + self.table.set_homogeneous(True) + self.table.set_row_spacings(3) + self.table.set_col_spacings(3) + self.table.show() + + self.size_label = self.make_label("S_ize:") + self.table.attach(self.size_label, 0, 1, 0, 1) + + self.size_slider = self.make_slider_and_spinner(3, 1, 250, 1, 10, 0) + if self.parasitedata: + self.size_slider["adj"].set_value(self.parasitedata["size"]) + elif shelf.has_key(self.shelfkey) == 1: + self.size_slider["adj"].set_value(shelf[self.shelfkey]["size"]) + self.size_label.set_mnemonic_widget(self.size_slider["spinner"]) + self.table.attach(self.size_slider["slider"], 1, 4, 0, 1) + self.table.attach(self.size_slider["spinner"], 4, 5, 0, 1) + self.size_slider["adj"].connect("value-changed", self.preview) + + self.position_label = self.make_label("Position:") + self.table.attach(self.position_label, 0, 1, 1, 2) + + self.position_slider = self.make_slider_and_spinner(50.0, 0.0, 100.0, 1, 10, 1) + if self.parasitedata: + self.position_slider["adj"].set_value(self.parasitedata["position"]) + elif shelf.has_key(self.shelfkey) == 1: + self.position_slider["adj"].set_value(shelf[self.shelfkey]["position"]) + self.position_label.set_mnemonic_widget(self.position_slider["spinner"]) + self.table.attach(self.position_slider["slider"], 1, 4, 1, 2) + self.table.attach(self.position_slider["spinner"], 4, 5, 1, 2) + self.position_slider["adj"].connect("value-changed", self.preview) + + self.position_label2 = gtk.Label("0 = inside, 100 = outside") + self.position_label2.set_alignment(0.5, 0.5) + self.position_label2.show() + self.table.attach(self.position_label2, 1, 5, 2, 3) + + self.mode_label = self.make_label("_Blend Mode:") + self.table.attach(self.mode_label, 0, 1, 3, 4) + + self.mode_box = self.make_blend_mode_box() + if self.parasitedata: + self.mode_box.set_active(self.parasitedata["mode"]) + elif shelf.has_key(self.shelfkey) == 1: + self.mode_box.set_active(shelf[self.shelfkey]["mode"]) + else: + self.mode_box.set_active(NORMAL_MODE) + self.mode_label.set_mnemonic_widget(self.mode_box) + self.mode_box.show() + self.table.attach(self.mode_box, 1, 5, 3, 4) + self.mode_box.connect("changed", self.preview) + + self.opacity_label = self.make_label("_Opacity:") + self.table.attach(self.opacity_label, 0, 1, 4, 5) + + self.opacity_slider = self.make_slider_and_spinner(75.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.opacity_slider["adj"].set_value(self.parasitedata["opacity"]) + elif shelf.has_key(self.shelfkey) == 1: + self.opacity_slider["adj"].set_value(shelf[self.shelfkey]["opacity"]) + else: + self.opacity_slider["adj"].set_value(100.0) + self.opacity_label.set_mnemonic_widget(self.opacity_slider["spinner"]) + self.table.attach(self.opacity_slider["slider"], 1, 4, 4, 5) + self.table.attach(self.opacity_slider["spinner"], 4, 5, 4, 5) + self.opacity_slider["adj"].connect("value-changed", self.preview) + + self.fill_type_frame = gimpui.Frame("Fill Type") + self.fill_type_frame.show() + self.fill_type_vbox = gtk.VBox(False, 7) + self.fill_type_vbox.show() + self.fill_type_frame.add(self.fill_type_vbox) + + self.fill_type_radio_hbox = gtk.HBox(False, 7) + self.fill_type_color_radio = gtk.RadioButton(None, "Color", True) + self.fill_type_gradient_radio = gtk.RadioButton(self.fill_type_color_radio, "Gradient", True) + self.fill_type_pattern_radio = gtk.RadioButton(self.fill_type_color_radio, "Pattern", True) + self.fill_type_color_radio.show() + self.fill_type_gradient_radio.show() + self.fill_type_pattern_radio.show() + self.fill_type_radio_hbox.pack_start(self.fill_type_color_radio, True, True, 0) + self.fill_type_radio_hbox.pack_start(self.fill_type_gradient_radio, True, True, 0) + self.fill_type_radio_hbox.pack_start(self.fill_type_pattern_radio, True, True, 0) + self.fill_type_radio_hbox.show() + self.fill_type_vbox.pack_start(self.fill_type_radio_hbox, True, True, 7) + self.fill_type_color_radio.connect("toggled", self.switch_fill_panes) + self.fill_type_gradient_radio.connect("toggled", self.switch_fill_panes) + self.fill_type_pattern_radio.connect("toggled", self.switch_fill_panes) + + self.fill_type_hbox = gtk.HBox(False, 0) + + self.fill_type_table = gtk.Table(6, 4, True) + self.fill_type_table.set_homogeneous(True) + self.fill_type_table.set_row_spacings(3) + self.fill_type_table.set_col_spacings(3) + self.fill_type_table.show() + + self.color_label = self.make_label("_Color:") + self.fill_type_table.attach(self.color_label, 0, 1, 0, 1) + + self.color_button = gimpui.ColorButton("Stroke Color", 10, 10, gimpcolor.RGB(255, 0, 0, 255)) + if self.parasitedata: + self.color_button.set_color(self.parasitedata["color"]) + elif shelf.has_key(self.shelfkey) == 1: + self.color_button.set_color(shelf[self.shelfkey]["color"]) + self.color_label.set_mnemonic_widget(self.color_button) + self.fill_type_table.attach(self.color_button, 1, 2, 0, 1) + self.color_button.show() + self.color_button.connect("color-changed", self.preview) + + self.gradient_label = self.make_label("_Gradient:", False) + self.fill_type_table.attach(self.gradient_label, 0, 1, 0, 1) + + self.gradient_button = gimpui.GradientSelector() + if self.parasitedata: + self.gradient_button.set_gradient(self.parasitedata["gradient"]) + elif shelf.has_key(self.shelfkey) == 1: + self.gradient_button.set_gradient(shelf[self.shelfkey]["gradient"]) + self.gradient_label.set_mnemonic_widget(self.gradient_button) + self.fill_type_table.attach(self.gradient_button, 1, 2, 0, 1) + self.gradient_button.connect("gradient-set", self.preview) + + self.gradient_type_label = self.make_label("Gradient _Type:", False) + self.fill_type_table.attach(self.gradient_type_label, 0, 1, 1, 2) + + self.gradient_type_box = self.make_gradient_type_box() + if self.parasitedata: + self.gradient_type_box.set_active(self.parasitedata["gradienttype"]) + elif shelf.has_key(self.shelfkey) == 1: + self.gradient_type_box.set_active(shelf[self.shelfkey]["gradienttype"]) + else: + self.gradient_type_box.set_active(0) + self.gradient_type_label.set_mnemonic_widget(self.gradient_type_box) + self.fill_type_table.attach(self.gradient_type_box, 1, 4, 1, 2) + self.gradient_type_box.connect("changed", self.preview) + + self.gradient_repeat_label = self.make_label("Repeat:", False) + self.fill_type_table.attach(self.gradient_repeat_label, 0, 1, 2, 3) + + self.gradient_repeat_box = self.make_gradient_repeat_box() + if self.parasitedata: + self.gradient_repeat_box.set_active(self.parasitedata["repeat"]) + elif shelf.has_key(self.shelfkey) == 1: + self.gradient_repeat_box.set_active(shelf[self.shelfkey]["repeat"]) + else: + self.gradient_repeat_box.set_active(0) + self.gradient_repeat_label.set_mnemonic_widget(self.gradient_repeat_box) + self.fill_type_table.attach(self.gradient_repeat_box, 1, 4, 2, 3) + self.gradient_repeat_box.connect("changed", self.preview) + + self.gradient_reverse_check = gtk.CheckButton("_Reverse") + if self.parasitedata: + if self.parasitedata["reverse"] == 1: + self.gradient_reverse_check.set_active(True) + elif shelf.has_key(self.shelfkey) == 1 and shelf[self.shelfkey]["reverse"] == 1: + self.gradient_reverse_check.set_active(True) + self.fill_type_table.attach(self.gradient_reverse_check, 2, 3, 0, 1) + self.gradient_reverse_check.connect("toggled", self.preview) + + self.gradient_center_label = self.make_label("_Center:", False) + self.fill_type_table.attach(self.gradient_center_label, 0, 1, 3, 4) + + self.gradient_centerx_spinner = self.make_spinner(0.0, 0.0, self.img.width, 1.0, 10.0, 1, False) + if self.parasitedata: + self.gradient_centerx_spinner["adj"].set_value(self.parasitedata["centerx"]) + elif shelf.has_key(self.shelfkey) == 1: + self.gradient_centerx_spinner["adj"].set_value(shelf[self.shelfkey]["centerx"]) + self.gradient_center_label.set_mnemonic_widget(self.gradient_centerx_spinner["spinner"]) + self.fill_type_table.attach(self.gradient_centerx_spinner["spinner"], 1, 2, 3, 4) + self.gradient_centerx_spinner["adj"].connect("value-changed", self.preview) + + self.gradient_centery_spinner = self.make_spinner(0.0, 0.0, self.img.height, 1.0, 10.0, 1, False) + if self.parasitedata: + self.gradient_centery_spinner["adj"].set_value(self.parasitedata["centery"]) + elif shelf.has_key(self.shelfkey) == 1: + self.gradient_centery_spinner["adj"].set_value(shelf[self.shelfkey]["centery"]) + self.fill_type_table.attach(self.gradient_centery_spinner["spinner"], 2, 3, 3, 4) + self.gradient_centery_spinner["adj"].connect("value-changed", self.preview) + + self.gradient_angle_label = self.make_label("_Gradient Angle:", False) + self.fill_type_table.attach(self.gradient_angle_label, 0, 1, 4, 5) + + self.gradient_angle_slider = self.make_slider_and_spinner(90.0, -180.0, 180.0, 1.0, 10.0, 1, False) + if self.parasitedata: + self.gradient_angle_slider["adj"].set_value(self.parasitedata["angle"]) + elif shelf.has_key(self.shelfkey) == 1: + self.gradient_angle_slider["adj"].set_value(shelf[self.shelfkey]["angle"]) + self.gradient_angle_label.set_mnemonic_widget(self.gradient_angle_slider["spinner"]) + self.fill_type_table.attach(self.gradient_angle_slider["slider"], 1, 3, 4, 5) + self.fill_type_table.attach(self.gradient_angle_slider["spinner"], 3, 4, 4, 5) + self.gradient_angle_slider["adj"].connect("value-changed", self.preview) + + self.gradient_width_label = self.make_label("_Gradient Width:", False) + self.fill_type_table.attach(self.gradient_width_label, 0, 1, 5, 6) + + self.gradient_width_spinner = self.make_spinner(0.0, 0.0, 262144.0, 1.0, 10.0, 1, False) + if self.parasitedata: + self.gradient_width_spinner["adj"].set_value(self.parasitedata["width"]) + elif shelf.has_key(self.shelfkey) == 1: + self.gradient_width_spinner["adj"].set_value(shelf[self.shelfkey]["width"]) + self.gradient_width_label.set_mnemonic_widget(self.gradient_width_spinner["spinner"]) + self.fill_type_table.attach(self.gradient_width_spinner["spinner"], 1, 2, 5, 6) + self.gradient_width_spinner["adj"].connect("value-changed", self.preview) + + self.pattern_label = self.make_label("_Pattern:", False) + self.fill_type_table.attach(self.pattern_label, 0, 1, 0, 1) + + self.pattern_button = gimpui.PatternSelector() + if self.parasitedata: + self.pattern_button.set_pattern(self.parasitedata["pattern"]) + elif shelf.has_key(self.shelfkey) == 1: + self.pattern_button.set_pattern(shelf[self.shelfkey]["pattern"]) + self.pattern_label.set_mnemonic_widget(self.pattern_button) + self.fill_type_table.attach(self.pattern_button, 1, 3, 0, 1) + self.pattern_button.connect("pattern-set", self.preview) + + self.pattern_scale_label = self.make_label("Scale:", False) + self.fill_type_table.attach(self.pattern_scale_label, 0, 1, 1, 2) + + self.pattern_scale_slider = self.make_slider_and_spinner(100.0, 1.0, 1000.0, 1.0, 10.0, 1, False) + if self.parasitedata: + self.pattern_scale_slider["adj"].set_value(self.parasitedata["scale"]) + elif shelf.has_key(self.shelfkey) == 1: + self.pattern_scale_slider["adj"].set_value(shelf[self.shelfkey]["scale"]) + self.pattern_scale_label.set_mnemonic_widget(self.pattern_scale_slider["spinner"]) + self.fill_type_table.attach(self.pattern_scale_slider["slider"], 1, 3, 1, 2) + self.fill_type_table.attach(self.pattern_scale_slider["spinner"], 3, 4, 1, 2) + self.pattern_scale_slider["adj"].connect("value-changed", self.preview) + + self.pattern_interpolation_type_label = self.make_label("Interpolation:", False) + self.fill_type_table.attach(self.pattern_interpolation_type_label, 0, 1, 2, 3) + + self.pattern_interpolation_type_box = self.make_interpolation_box() + if self.parasitedata: + self.pattern_interpolation_type_box.set_active(self.parasitedata["interpolation_type"]) + elif shelf.has_key(self.shelfkey) == 1: + self.pattern_interpolation_type_box.set_active(shelf[self.shelfkey]["interpolation_type"]) + else: + self.pattern_interpolation_type_box.set_active(0) + self.pattern_interpolation_type_label.set_mnemonic_widget(self.pattern_interpolation_type_box) + self.fill_type_table.attach(self.pattern_interpolation_type_box, 1, 4, 2, 3) + self.pattern_interpolation_type_box.connect("changed", self.preview) + + self.fill_type_hbox.pack_start(self.fill_type_table, True, True, 0) + self.fill_type_vbox.pack_start(self.fill_type_hbox, True, True, 0) + self.fill_type_hbox.show() + + if self.parasitedata: + if self.parasitedata["filltype"] == 0: + self.fill_type_color_radio.set_active(True) + elif self.parasitedata["filltype"] == 1: + self.fill_type_gradient_radio.set_active(True) + elif self.parasitedata["filltype"] == 2: + self.fill_type_pattern_radio.set_active(True) + elif shelf.has_key(self.shelfkey) == 1: + if shelf[self.shelfkey]["filltype"] == 0: + self.fill_type_color_radio.set_active(True) + elif shelf[self.shelfkey]["filltype"] == 1: + self.fill_type_gradient_radio.set_active(True) + elif shelf[self.shelfkey]["filltype"] == 2: + self.fill_type_pattern_radio.set_active(True) + else: + self.fill_type_color_radio.set_active(True) + + self.merge_check = gtk.CheckButton("_Merge with layer") + if self.parasitedata: + if self.parasitedata["merge"] == 1: + self.merge_check.set_active(True) + elif shelf.has_key(self.shelfkey) == 1 and shelf[self.shelfkey]["merge"] == 1: + self.merge_check.set_active(True) + self.merge_check.show() + self.merge_check.connect("toggled", self.preview) + + self.preview_check = gtk.CheckButton("_Preview") + self.preview_check.show() + self.preview_check.connect("toggled", self.preview) + + self.dialog.vbox.hbox1 = gtk.HBox(False, 7) + self.dialog.vbox.hbox1.show() + self.dialog.vbox.pack_start(self.dialog.vbox.hbox1, True, True, 7) + self.dialog.vbox.hbox1.pack_start(self.table, True, True, 7) + self.dialog.vbox.hbox2 = gtk.HBox(False, 7) + self.dialog.vbox.hbox2.show() + self.dialog.vbox.add(self.dialog.vbox.hbox2) + self.dialog.vbox.hbox2.pack_start(self.fill_type_frame, True, True, 7) + self.dialog.vbox.hbox3 = gtk.HBox(False, 7) + self.dialog.vbox.hbox3.show() + self.dialog.vbox.add(self.dialog.vbox.hbox3) + self.dialog.vbox.hbox3.pack_start(self.merge_check, True, True, 10) + self.dialog.vbox.hbox4 = gtk.HBox(False, 7) + self.dialog.vbox.hbox4.show() + self.dialog.vbox.add(self.dialog.vbox.hbox4) + self.dialog.vbox.hbox4.pack_start(self.preview_check, True, True, 10) + + self.makeDialogButtons() + + self.dialog.show() + self.dialog.run() + self.removePreviews() + + def okbutton(self, widget): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + self.previewLayer = None + self.unset_hidden_layer() + if pdb.gimp_image_undo_is_enabled(self.img) == 0: + pdb.gimp_image_undo_thaw(self.img) + if self.fill_type_color_radio.get_active(): + fill_type = 0 + elif self.fill_type_gradient_radio.get_active(): + fill_type = 1 + elif self.fill_type_pattern_radio.get_active(): + fill_type = 2 + params = { + "filltype": fill_type, + "color": self.color_button.get_color(), + "gradient": self.gradient_button.get_gradient(), + "gradienttype": self.gradient_type_box.get_active(), + "repeat": self.gradient_repeat_box.get_active(), + "reverse": self.cond(self.gradient_reverse_check.get_active()), + "centerx": self.gradient_centerx_spinner["adj"].get_value(), + "centery": self.gradient_centery_spinner["adj"].get_value(), + "angle": self.gradient_angle_slider["adj"].get_value(), + "width": self.gradient_width_spinner["adj"].get_value(), + "pattern": self.pattern_button.get_pattern(), + "scale": self.pattern_scale_slider["adj"].get_value(), + "interpolation_type": self.pattern_interpolation_type_box.get_active(), + "opacity": self.opacity_slider["adj"].get_value(), + "mode": self.mode_box.get_active(), + "size": int(round(self.size_slider["adj"].get_value())), + "position": self.position_slider["adj"].get_value(), + "merge": self.cond(self.merge_check.get_active()) + } + if self.parasitedata: + self.img.remove_layer(self.parasitedata["oldid"]) + if params["filltype"] == 0: + fill = params["color"] + elif params["filltype"] == 1: + fill = ( + params["gradient"], + params["gradienttype"], + params["repeat"], + params["reverse"], + params["centerx"], + params["centery"], + params["angle"], + params["width"] + ) + elif params["filltype"] == 2: + fill = ( + params["pattern"], + params["scale"], + params["interpolation_type"] + ) + fxlayer = self.makeStroke( + self.img, + self.drawable, + fill, + params["opacity"], + params["mode"], + params["size"], + params["position"], + params["merge"] + ) + if params["merge"] == 0: + self.writeParasite(self.drawable, fxlayer, + ("radio", (self.fill_type_color_radio, self.fill_type_gradient_radio, self.fill_type_pattern_radio)), + ("color", self.color_button), + ("gradient", self.gradient_button), + ("combobox", self.gradient_type_box), + ("combobox", self.gradient_repeat_box), + ("check", self.gradient_reverse_check), + ("floatadj", self.gradient_centerx_spinner["adj"]), + ("floatadj", self.gradient_centery_spinner["adj"]), + ("floatadj", self.gradient_angle_slider["adj"]), + ("floatadj", self.gradient_width_spinner["adj"]), + ("pattern", self.pattern_button), + ("floatadj", self.pattern_scale_slider["adj"]), + ("combobox", self.pattern_interpolation_type_box), + ("floatadj", self.opacity_slider["adj"]), + ("modebox", self.mode_box), + ("intadj", self.size_slider["adj"]), + ("floatadj", self.position_slider["adj"]), + ("check", self.merge_check) + ) + shelf[self.shelfkey] = params + + def resetbutton(self, widget): + self.fill_type_color_radio.set_active(True) + self.color_button.set_color(gimpcolor.RGB(255, 0, 0, 255)) + self.gradient_button.set_gradient("FG to BG (RGB)") + self.gradient_type_box.set_active(0) + self.gradient_repeat_box.set_active(0) + self.gradient_reverse_check.set_active(False) + self.gradient_centerx_spinner["adj"].set_value(0.0) + self.gradient_centery_spinner["adj"].set_value(0.0) + self.gradient_angle_slider["adj"].set_value(90.0) + self.gradient_width_spinner["adj"].set_value(0.0) + self.pattern_button.set_pattern(pdb.gimp_context_get_pattern()) + self.pattern_scale_slider["adj"].set_value(100.0) + self.pattern_interpolation_type_box.set_active(0) + self.size_slider["adj"].set_value(3) + self.position_slider["adj"].set_value(50.0) + self.mode_box.set_active(NORMAL_MODE) + self.opacity_slider["adj"].set_value(100.0) + self.merge_check.set_active(False) + + def readParasite(self, img, drawable): + return layerfx_base.readParasite(self, img, drawable, + layerfx_stroke.shelfkey, + ("filltype", "int"), + ("color", "color"), + ("gradient", "string"), + ("gradienttype", "int"), + ("repeat", "int"), + ("reverse", "int"), + ("centerx", "float"), + ("centery", "float"), + ("angle", "float"), + ("width", "float"), + ("pattern", "string"), + ("scale", "float"), + ("interpolation_type", "int"), + ("opacity", "float"), + ("mode", "int"), + ("size", "int"), + ("position", "float"), + ("merge", "int") + ) + + def preview(self, widget, *extra): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + if self.preview_check.get_active(): + self.unset_hidden_layer() + if pdb.gimp_image_undo_is_enabled(self.img) == 1: + pdb.gimp_image_undo_freeze(self.img) + if self.parasitedata: + self.set_hidden_layer(self.parasitedata["oldid"]) + if self.merge_check.get_active(): + self.previewLayer = self.drawable.copy() + self.add_over_layer(self.previewLayer, self.drawable) + self.set_hidden_layer(self.drawable) + layer = self.previewLayer + merge = 1 + else: + layer = self.drawable + merge = 0 + if self.fill_type_color_radio.get_active(): + fill = self.color_button.get_color() + elif self.fill_type_gradient_radio.get_active(): + fill = ( + self.gradient_button.get_gradient(), + self.gradient_type_box.get_active(), + self.gradient_repeat_box.get_active(), + self.cond(self.gradient_reverse_check.get_active()), + self.gradient_centerx_spinner["adj"].get_value(), + self.gradient_centery_spinner["adj"].get_value(), + self.gradient_angle_slider["adj"].get_value(), + self.gradient_width_spinner["adj"].get_value() + ) + elif self.fill_type_pattern_radio.get_active(): + fill = ( + self.pattern_button.get_pattern(), + self.pattern_scale_slider["adj"].get_value(), + self.pattern_interpolation_type_box.get_active() + ) + self.previewLayer = self.makeStroke( + self.img, + layer, + fill, + self.opacity_slider["adj"].get_value(), + self.mode_box.get_active(), + int(round(self.size_slider["adj"].get_value())), + self.position_slider["adj"].get_value(), + merge + ) + else: + gimp.displays_flush() + + def switch_fill_panes(self, widget, *extra): + color_widgets = (self.color_label, self.color_button) + gradient_widgets = ( + self.gradient_label, + self.gradient_button, + self.gradient_type_label, + self.gradient_type_box, + self.gradient_repeat_label, + self.gradient_repeat_box, + self.gradient_reverse_check, + self.gradient_center_label, + self.gradient_centerx_spinner["spinner"], + self.gradient_centery_spinner["spinner"], + self.gradient_angle_label, + self.gradient_angle_slider["slider"], + self.gradient_angle_slider["spinner"], + self.gradient_width_label, + self.gradient_width_spinner["spinner"] + ) + pattern_widgets = ( + self.pattern_label, + self.pattern_button, + self.pattern_scale_label, + self.pattern_scale_slider["slider"], + self.pattern_scale_slider["spinner"], + self.pattern_interpolation_type_label, + self.pattern_interpolation_type_box + ) + if widget.get_active(): + if widget == self.fill_type_color_radio: + for i in gradient_widgets: + i.hide() + for i in pattern_widgets: + i.hide() + for i in color_widgets: + i.show() + elif widget == self.fill_type_gradient_radio: + for i in color_widgets: + i.hide() + for i in pattern_widgets: + i.hide() + for i in gradient_widgets: + i.show() + elif widget == self.fill_type_pattern_radio: + for i in color_widgets: + i.hide() + for i in gradient_widgets: + i.hide() + for i in pattern_widgets: + i.show() + if hasattr(self, "preview_check"): + self.preview(widget, *extra) + + def makeStroke(self, img, drawable, fill, opacity, mode, size, position, merge): + pdb.gimp_image_undo_group_start(img) + origselection = pdb.gimp_selection_save(img) + if position == 0: + strokelayer = gimp.Layer(img, "%s-stroke" % (drawable.name), drawable.width, drawable.height, (RGBA_IMAGE, GRAYA_IMAGE)[img.base_type], opacity, mode) + self.add_over_layer(strokelayer, drawable) + strokelayer.set_offsets(drawable.offsets[0], drawable.offsets[1]) + elif position == 100: + growamt = int(round(size * 1.2)) + strokelayer = gimp.Layer(img, "%s-stroke" % (drawable.name), drawable.width + (growamt * 2), drawable.height + (growamt * 2), (RGBA_IMAGE, GRAYA_IMAGE)[img.base_type], opacity, mode) + self.add_under_layer(strokelayer, drawable) + strokelayer.set_offsets(drawable.offsets[0] - growamt, drawable.offsets[1] - growamt) + else: + outerwidth = int(round((position / 100.0) * size)) + innerwidth = size - outerwidth + growamt = int(round(outerwidth * 1.2)) + strokelayer = gimp.Layer(img, "%s-stroke" % (drawable.name), drawable.width + (growamt * 2), drawable.height + (growamt * 2), (RGBA_IMAGE, GRAYA_IMAGE)[img.base_type], opacity, mode) + self.add_over_layer(strokelayer, drawable) + strokelayer.set_offsets(drawable.offsets[0] - growamt, drawable.offsets[1] - growamt) + pdb.gimp_selection_none(img) + pdb.gimp_edit_clear(strokelayer) + pdb.gimp_selection_layer_alpha(drawable) + if drawable.mask != None: + pdb.gimp_selection_combine(drawable.mask, CHANNEL_OP_INTERSECT) + alphaSel = pdb.gimp_selection_save(img) + if position == 0: + pdb.gimp_selection_shrink(img, size) + elif position != 100: + pdb.gimp_selection_shrink(img, innerwidth) + innerSel = pdb.gimp_selection_save(img) + if position == 0: + if merge == 1: + origmask = drawable.mask + layername = drawable.name + if origmask != None: + origmask = drawable.mask.copy() + drawable.remove_mask(MASK_DISCARD) + alphamask = drawable.create_mask(ADD_ALPHA_TRANSFER_MASK) + pdb.gimp_selection_none(img) + pdb.gimp_threshold(alphaSel, 1, 255) + pdb.gimp_selection_load(alphaSel) + pdb.gimp_selection_combine(innerSel, CHANNEL_OP_SUBTRACT) + elif position == 100: + pdb.gimp_selection_none(img) + pdb.gimp_threshold(innerSel, 255, 255) + pdb.gimp_selection_load(alphaSel) + pdb.gimp_selection_grow(img, size) + pdb.gimp_selection_combine(innerSel, CHANNEL_OP_SUBTRACT) + else: + pdb.gimp_selection_load(alphaSel) + pdb.gimp_selection_grow(img, outerwidth) + pdb.gimp_selection_combine(innerSel, CHANNEL_OP_SUBTRACT) + if type(fill) == gimpcolor.RGB: + origfgcolor = gimp.get_foreground() + gimp.set_foreground(fill) + pdb.gimp_edit_fill(strokelayer, FOREGROUND_FILL) + gimp.set_foreground(origfgcolor) + elif (type(fill) == tuple or type(fill) == list) and len(fill) == 8: + origgradient = pdb.gimp_context_get_gradient() + measures = self.getGradientMeasurements(drawable.offsets[0], drawable.offsets[1], fill[1], fill[4], fill[5], fill[6], fill[7]) + pdb.gimp_context_set_gradient(fill[0]) + pdb.gimp_edit_blend(strokelayer, CUSTOM_MODE, NORMAL_MODE, fill[1], 100.0, 1.0, fill[2], fill[3], False, 1, 0.0, False, measures["start"][0], measures["start"][1], measures["end"][0], measures["end"][1]) + pdb.gimp_context_set_gradient(origgradient) + elif (type(fill) == tuple or type(fill) == list) and len(fill) == 3: + img.remove_channel(innerSel) + innerSel = pdb.gimp_selection_save(img) + pdb.gimp_selection_none(img) + origpattern = pdb.gimp_context_get_pattern() + if fill[1] == 100.0: + layerwidth = drawable.width + layerheight = drawable.height + else: + layerwidth = int(round(drawable.width/(fill[1]/100.0))) + layerheight = int(round(drawable.height/(fill[1]/100.0))) + pdb.gimp_layer_resize(strokelayer, layerwidth, layerheight, 0, 0) + pdb.gimp_context_set_pattern(fill[0]) + pdb.gimp_edit_fill(strokelayer, PATTERN_FILL) + pdb.gimp_context_set_pattern(origpattern) + if fill[1] != 100.0: + pdb.gimp_drawable_transform_scale(strokelayer, drawable.offsets[0], drawable.offsets[1], drawable.offsets[0] + drawable.width, drawable.offsets[1] + drawable.height, TRANSFORM_FORWARD, fill[2], 1, 3, TRANSFORM_RESIZE_ADJUST) + pdb.gimp_selection_load(innerSel) + pdb.gimp_selection_invert(img) + pdb.gimp_edit_clear(strokelayer) + if merge == 1: + if position == 0: + strokelayer = pdb.gimp_image_merge_down(img, strokelayer, EXPAND_AS_NECESSARY) + strokelayer.name = layername + strokelayer.add_mask(alphamask) + strokelayer.remove_mask(MASK_APPLY) + if origmask != None: + strokelayer.add_mask(origmask) + elif position == 100: + origmask = drawable.mask + layername = drawable.name + if origmask != None: + drawable.remove_mask(MASK_APPLY) + strokelayer = pdb.gimp_image_merge_down(img, drawable, EXPAND_AS_NECESSARY) + strokelayer.name = layername + else: + origmask = drawable.mask + layername = drawable.name + if origmask != None: + drawable.remove_mask(MASK_APPLY) + strokelayer = pdb.gimp_image_merge_down(img, strokelayer, EXPAND_AS_NECESSARY) + strokelayer.name = layername + else: + pdb.gimp_image_set_active_layer(img, drawable) + pdb.gimp_selection_load(origselection) + img.remove_channel(alphaSel) + img.remove_channel(innerSel) + img.remove_channel(origselection) + gimp.displays_flush() + pdb.gimp_image_undo_group_end(img) + return strokelayer + +class layerfx_color_overlay(layerfx_base): + shelfkey = "layerfx-color-overlay" + + def __init__(self, runmode, img, drawable, color, opacity, mode, merge): + self.origMsgHandler = pdb.gimp_message_get_handler() + pdb.gimp_message_set_handler(ERROR_CONSOLE) + self.img = img + self.drawable = drawable + if runmode == RUN_INTERACTIVE: + self.showDialog() + elif runmode == RUN_NONINTERACTIVE: + if self.validatedata(img, drawable, + ("color", color), + ("percent", opacity), + ("mode", mode), + ("boolean", merge) + ): + self.removeOldLayer() + fxlayer = self.makeOverlay(img, drawable, color, opacity, mode, merge) + if merge == 0: + self.writeParasiteRaw(drawable, fxlayer, color, opacity, mode, merge) + shelf[self.shelfkey] = { + "color": color, + "opacity": opacity, + "mode": mode, + "merge": merge + } + elif runmode == RUN_WITH_LAST_VALS and shelf.has_key(self.shelfkey) == 1: + self.removeOldLayer() + fxlayer = self.makeOverlay( + img, + drawable, + shelf[self.shelfkey]["color"], + shelf[self.shelfkey]["opacity"], + shelf[self.shelfkey]["mode"], + shelf[self.shelfkey]["merge"] + ) + if shelf[self.shelfkey]["merge"] == 0: + self.writeParasiteRaw(drawable, fxlayer, + shelf[self.shelfkey]["color"], + shelf[self.shelfkey]["opacity"], + shelf[self.shelfkey]["mode"], + shelf[self.shelfkey]["merge"] + ) + else: + pdb.gimp_message("unknown runmode") + pdb.gimp_message_set_handler(self.origMsgHandler) + + def showDialog(self): + self.dialog = gimpui.Dialog("Color Overlay", "coloroverlaydialog") + + self.parasitedata = self.readParasite(self.img, self.drawable) + + self.table = gtk.Table(3, 5, True) + self.table.set_homogeneous(True) + self.table.set_row_spacings(3) + self.table.set_col_spacings(3) + self.table.show() + + self.color_label = self.make_label("_Color:") + self.table.attach(self.color_label, 0, 1, 0, 1) + + self.color_button = gimpui.ColorButton("Overlay Color", 10, 10, gimpcolor.RGB(255, 255, 255, 255)) + if self.parasitedata: + self.color_button.set_color(self.parasitedata["color"]) + elif shelf.has_key(self.shelfkey) == 1: + self.color_button.set_color(shelf[self.shelfkey]["color"]) + self.color_label.set_mnemonic_widget(self.color_button) + self.color_button.show() + self.table.attach(self.color_button, 1, 2, 0, 1) + self.color_button.connect("color-changed", self.preview) + + self.mode_label = self.make_label("_Blend Mode:") + self.table.attach(self.mode_label, 0, 1, 1, 2) + + self.mode_box = self.make_blend_mode_box() + if self.parasitedata: + self.mode_box.set_active(self.parasitedata["mode"]) + elif shelf.has_key(self.shelfkey) == 1: + self.mode_box.set_active(shelf[self.shelfkey]["mode"]) + else: + self.mode_box.set_active(NORMAL_MODE) + self.mode_label.set_mnemonic_widget(self.mode_box) + self.mode_box.show() + self.table.attach(self.mode_box, 1, 5, 1, 2) + self.mode_box.connect("changed", self.preview) + + self.opacity_label = self.make_label("_Opacity:") + self.table.attach(self.opacity_label, 0, 1, 2, 3) + + self.opacity_slider = self.make_slider_and_spinner(75.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.opacity_slider["adj"].set_value(self.parasitedata["opacity"]) + elif shelf.has_key(self.shelfkey) == 1: + self.opacity_slider["adj"].set_value(shelf[self.shelfkey]["opacity"]) + else: + self.opacity_slider["adj"].set_value(100.0) + self.opacity_label.set_mnemonic_widget(self.opacity_slider["spinner"]) + self.table.attach(self.opacity_slider["slider"], 1, 4, 2, 3) + self.table.attach(self.opacity_slider["spinner"], 4, 5, 2, 3) + self.opacity_slider["adj"].connect("value-changed", self.preview) + + self.merge_check = gtk.CheckButton("_Merge with layer") + if self.parasitedata: + if self.parasitedata["merge"] == 1: + self.merge_check.set_active(True) + elif shelf.has_key(self.shelfkey) == 1 and shelf[self.shelfkey]["merge"] == 1: + self.merge_check.set_active(True) + self.merge_check.show() + self.merge_check.connect("toggled", self.preview) + + self.preview_check = gtk.CheckButton("_Preview") + self.preview_check.show() + self.preview_check.connect("toggled", self.preview) + + self.dialog.vbox.hbox1 = gtk.HBox(False, 7) + self.dialog.vbox.hbox1.show() + self.dialog.vbox.pack_start(self.dialog.vbox.hbox1, True, True, 7) + self.dialog.vbox.hbox1.pack_start(self.table, True, True, 7) + self.dialog.vbox.hbox2 = gtk.HBox(False, 7) + self.dialog.vbox.hbox2.show() + self.dialog.vbox.add(self.dialog.vbox.hbox2) + self.dialog.vbox.hbox2.pack_start(self.merge_check, True, True, 10) + self.dialog.vbox.hbox3 = gtk.HBox(False, 7) + self.dialog.vbox.hbox3.show() + self.dialog.vbox.add(self.dialog.vbox.hbox3) + self.dialog.vbox.hbox3.pack_start(self.preview_check, True, True, 10) + + self.makeDialogButtons() + + self.dialog.show() + self.dialog.run() + self.removePreviews() + + def okbutton(self, widget): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + self.previewLayer = None + self.unset_hidden_layer() + if pdb.gimp_image_undo_is_enabled(self.img) == 0: + pdb.gimp_image_undo_thaw(self.img) + params = { + "color": self.color_button.get_color(), + "opacity": self.opacity_slider["adj"].get_value(), + "mode": self.mode_box.get_active(), + "merge": self.cond(self.merge_check.get_active()) + } + if self.parasitedata: + self.img.remove_layer(self.parasitedata["oldid"]) + fxlayer = self.makeOverlay( + self.img, + self.drawable, + params["color"], + params["opacity"], + params["mode"], + params["merge"] + ) + if params["merge"] == 0: + self.writeParasite(self.drawable, fxlayer, + ("color", self.color_button), + ("floatadj", self.opacity_slider["adj"]), + ("modebox", self.mode_box), + ("check", self.merge_check) + ) + shelf[self.shelfkey] = params + + def resetbutton(self, widget): + self.color_button.set_color(gimpcolor.RGB(255, 255, 255, 255)) + self.mode_box.set_active(NORMAL_MODE) + self.opacity_slider["adj"].set_value(100.0) + self.merge_check.set_active(False) + + def readParasite(self, img, drawable): + return layerfx_base.readParasite(self, img, drawable, + layerfx_color_overlay.shelfkey, + ("color", "color"), + ("opacity", "float"), + ("mode", "int"), + ("merge", "int") + ) + + def preview(self, widget): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + if self.preview_check.get_active(): + self.unset_hidden_layer() + if pdb.gimp_image_undo_is_enabled(self.img) == 1: + pdb.gimp_image_undo_freeze(self.img) + if self.parasitedata: + self.set_hidden_layer(self.parasitedata["oldid"]) + if self.merge_check.get_active(): + self.previewLayer = self.drawable.copy() + self.add_over_layer(self.previewLayer, self.drawable) + self.set_hidden_layer(self.drawable) + layer = self.previewLayer + merge = 1 + else: + layer = self.drawable + merge = 0 + self.previewLayer = self.makeOverlay( + self.img, + layer, + self.color_button.get_color(), + self.opacity_slider["adj"].get_value(), + self.mode_box.get_active(), + merge + ) + else: + gimp.displays_flush() + + def makeOverlay(self, img, drawable, color, opacity, mode, merge): + pdb.gimp_image_undo_group_start(img) + origfgcolor = gimp.get_foreground() + origselection = pdb.gimp_selection_save(img) + colorlayer = gimp.Layer(img, "%s-color" % (drawable.name), drawable.width, drawable.height, (RGBA_IMAGE, GRAYA_IMAGE)[img.base_type], opacity, mode) + self.add_over_layer(colorlayer, drawable) + colorlayer.set_offsets(drawable.offsets[0], drawable.offsets[1]) + pdb.gimp_selection_none(img) + gimp.set_foreground(color) + pdb.gimp_edit_fill(colorlayer, FOREGROUND_FILL) + if merge == 1: + origmask = drawable.mask + layername = drawable.name + if origmask != None: + origmask = drawable.mask.copy() + drawable.remove_mask(MASK_DISCARD) + alphamask = drawable.create_mask(ADD_ALPHA_TRANSFER_MASK) + colorlayer = pdb.gimp_image_merge_down(img, colorlayer, EXPAND_AS_NECESSARY) + colorlayer.name = layername + colorlayer.add_mask(alphamask) + colorlayer.remove_mask(MASK_APPLY) + if origmask != None: + colorlayer.add_mask(origmask) + else: + pdb.gimp_selection_layer_alpha(drawable) + if drawable.mask != None: + pdb.gimp_selection_combine(drawable.mask, CHANNEL_OP_INTERSECT) + alphamask = colorlayer.create_mask(ADD_SELECTION_MASK) + colorlayer.add_mask(alphamask) + colorlayer.remove_mask(MASK_APPLY) + pdb.gimp_image_set_active_layer(img, drawable) + gimp.set_foreground(origfgcolor) + pdb.gimp_selection_load(origselection) + img.remove_channel(origselection) + gimp.displays_flush() + pdb.gimp_image_undo_group_end(img) + return colorlayer + +class layerfx_gradient_overlay(layerfx_base): + shelfkey = "layerfx-gradient-overlay" + + def __init__(self, runmode, img, drawable, gradient, gradienttype, repeat, reverse, opacity, mode, centerx, centery, angle, width, merge): + self.origMsgHandler = pdb.gimp_message_get_handler() + pdb.gimp_message_set_handler(ERROR_CONSOLE) + self.img = img + self.drawable = drawable + if runmode == RUN_INTERACTIVE: + self.showDialog() + elif runmode == RUN_NONINTERACTIVE: + if self.validatedata(img, drawable, + ("gradient", gradient), + ("intrange", gradienttype, 0, 10), + ("intrange", repeat, 0, 2), + ("boolean", reverse), + ("percent", opacity), + ("mode", mode), + ("floatrange", centerx, 0.0, img.width), + ("floatrange", centery, 0.0, img.height), + ("angle", angle), + ("floatrange", width, 0.0, 262144.0), + ("boolean", merge) + ): + self.removeOldLayer() + fxlayer = self.makeOverlay(img, drawable, gradient, gradienttype, repeat, reverse, opacity, mode, centerx, centery, angle, width, merge) + if merge == 0: + self.writeParasiteRaw(drawable, fxlayer, gradient, gradienttype, repeat, reverse, opacity, mode, centerx, centery, angle, width, merge) + shelf[self.shelfkey] = { + "gradient": gradient, + "gradienttype": gradienttype, + "repeat": repeat, + "reverse": reverse, + "opacity": opacity, + "mode": mode, + "centerx": centerx, + "centery": centery, + "angle": angle, + "width": width, + "merge": merge + } + elif runmode == RUN_WITH_LAST_VALS and shelf.has_key(self.shelfkey) == 1: + self.removeOldLayer() + fxlayer = self.makeOverlay( + img, + drawable, + shelf[self.shelfkey]["gradient"], + shelf[self.shelfkey]["gradienttype"], + shelf[self.shelfkey]["repeat"], + shelf[self.shelfkey]["reverse"], + shelf[self.shelfkey]["opacity"], + shelf[self.shelfkey]["mode"], + shelf[self.shelfkey]["centerx"], + shelf[self.shelfkey]["centery"], + shelf[self.shelfkey]["angle"], + shelf[self.shelfkey]["width"], + shelf[self.shelfkey]["merge"] + ) + if shelf[self.shelfkey]["merge"] == 0: + self.writeParasiteRaw(drawable, fxlayer, + shelf[self.shelfkey]["gradient"], + shelf[self.shelfkey]["gradienttype"], + shelf[self.shelfkey]["repeat"], + shelf[self.shelfkey]["reverse"], + shelf[self.shelfkey]["opacity"], + shelf[self.shelfkey]["mode"], + shelf[self.shelfkey]["centerx"], + shelf[self.shelfkey]["centery"], + shelf[self.shelfkey]["angle"], + shelf[self.shelfkey]["width"], + shelf[self.shelfkey]["merge"] + ) + else: + pdb.gimp_message("unknown runmode") + pdb.gimp_message_set_handler(self.origMsgHandler) + + def showDialog(self): + self.dialog = gimpui.Dialog("Gradient Overlay", "gradientoverlaydialog") + + self.parasitedata = self.readParasite(self.img, self.drawable) + + self.table = gtk.Table(8, 4, True) + self.table.set_homogeneous(True) + self.table.set_row_spacings(3) + self.table.set_col_spacings(3) + self.table.show() + + self.gradient_label = self.make_label("_Gradient:") + self.table.attach(self.gradient_label, 0, 1, 0, 1) + + self.gradient_button = gimpui.GradientSelector() + if self.parasitedata: + self.gradient_button.set_gradient(self.parasitedata["gradient"]) + elif shelf.has_key(self.shelfkey) == 1: + self.gradient_button.set_gradient(shelf[self.shelfkey]["gradient"]) + self.gradient_label.set_mnemonic_widget(self.gradient_button) + self.gradient_button.show() + self.table.attach(self.gradient_button, 1, 2, 0, 1) + self.gradient_button.connect("gradient-set", self.preview) + + self.gradienttype_label = self.make_label("Gradient _Type:") + self.table.attach(self.gradienttype_label, 0, 1, 1, 2) + + self.gradienttype_box = self.make_gradient_type_box() + if self.parasitedata: + self.gradienttype_box.set_active(self.parasitedata["gradienttype"]) + elif shelf.has_key(self.shelfkey) == 1: + self.gradienttype_box.set_active(shelf[self.shelfkey]["gradienttype"]) + else: + self.gradienttype_box.set_active(0) + self.gradienttype_box.show() + self.gradienttype_label.set_mnemonic_widget(self.gradienttype_box) + self.table.attach(self.gradienttype_box, 1, 4, 1, 2) + self.gradienttype_box.connect("changed", self.preview) + + self.repeat_label = self.make_label("Repeat:") + self.table.attach(self.repeat_label, 0, 1, 2, 3) + + self.repeat_box = self.make_gradient_repeat_box() + if self.parasitedata: + self.repeat_box.set_active(self.parasitedata["repeat"]) + elif shelf.has_key(self.shelfkey) == 1: + self.repeat_box.set_active(shelf[self.shelfkey]["repeat"]) + else: + self.repeat_box.set_active(0) + self.repeat_box.show() + self.repeat_label.set_mnemonic_widget(self.repeat_box) + self.table.attach(self.repeat_box, 1, 4, 2, 3) + self.repeat_box.connect("changed", self.preview) + + self.reverse_check = gtk.CheckButton("_Reverse") + if self.parasitedata: + if self.parasitedata["reverse"] == 1: + self.reverse_check.set_active(True) + elif shelf.has_key(self.shelfkey) == 1 and shelf[self.shelfkey]["reverse"] == 1: + self.reverse_check.set_active(True) + self.reverse_check.show() + self.table.attach(self.reverse_check, 2, 3, 0, 1) + self.reverse_check.connect("toggled", self.preview) + + self.mode_label = self.make_label("_Blend Mode:") + self.table.attach(self.mode_label, 0, 1, 3, 4) + + self.mode_box = self.make_blend_mode_box() + if self.parasitedata: + self.mode_box.set_active(self.parasitedata["mode"]) + elif shelf.has_key(self.shelfkey) == 1: + self.mode_box.set_active(shelf[self.shelfkey]["mode"]) + else: + self.mode_box.set_active(NORMAL_MODE) + self.mode_label.set_mnemonic_widget(self.mode_box) + self.mode_box.show() + self.table.attach(self.mode_box, 1, 4, 3, 4) + self.mode_box.connect("changed", self.preview) + + self.opacity_label = self.make_label("_Opacity:") + self.table.attach(self.opacity_label, 0, 1, 4, 5) + + self.opacity_slider = self.make_slider_and_spinner(100.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.opacity_slider["adj"].set_value(self.parasitedata["opacity"]) + elif shelf.has_key(self.shelfkey) == 1: + self.opacity_slider["adj"].set_value(shelf[self.shelfkey]["opacity"]) + self.opacity_label.set_mnemonic_widget(self.opacity_slider["spinner"]) + self.table.attach(self.opacity_slider["slider"], 1, 3, 4, 5) + self.table.attach(self.opacity_slider["spinner"], 3, 4, 4, 5) + self.opacity_slider["adj"].connect("value-changed", self.preview) + + self.center_label = self.make_label("_Center:") + self.table.attach(self.center_label, 0, 1, 5, 6) + + self.centerx_spinner = self.make_spinner(0.0, 0.0, self.img.width, 1.0, 10.0, 1) + if self.parasitedata: + self.centerx_spinner["adj"].set_value(self.parasitedata["centerx"]) + elif shelf.has_key(self.shelfkey) == 1: + self.centerx_spinner["adj"].set_value(shelf[self.shelfkey]["centerx"]) + self.center_label.set_mnemonic_widget(self.centerx_spinner["spinner"]) + self.table.attach(self.centerx_spinner["spinner"], 1, 2, 5, 6) + self.centerx_spinner["adj"].connect("value-changed", self.preview) + + self.centery_spinner = self.make_spinner(0.0, 0.0, self.img.height, 1.0, 10.0, 1) + if self.parasitedata: + self.centery_spinner["adj"].set_value(self.parasitedata["centery"]) + elif shelf.has_key(self.shelfkey) == 1: + self.centery_spinner["adj"].set_value(shelf[self.shelfkey]["centery"]) + self.table.attach(self.centery_spinner["spinner"], 2, 3, 5, 6) + self.centery_spinner["adj"].connect("value-changed", self.preview) + + self.angle_label = self.make_label("_Gradient Angle:") + self.table.attach(self.angle_label, 0, 1, 6, 7) + + self.angle_slider = self.make_slider_and_spinner(90.0, -180.0, 180.0, 1.0, 10.0, 1) + if self.parasitedata: + self.angle_slider["adj"].set_value(self.parasitedata["angle"]) + elif shelf.has_key(self.shelfkey) == 1: + self.angle_slider["adj"].set_value(shelf[self.shelfkey]["angle"]) + self.angle_label.set_mnemonic_widget(self.angle_slider["spinner"]) + self.table.attach(self.angle_slider["slider"], 1, 3, 6, 7) + self.table.attach(self.angle_slider["spinner"], 3, 4, 6, 7) + self.angle_slider["adj"].connect("value-changed", self.preview) + + self.width_label = self.make_label("_Gradient Width:") + self.table.attach(self.width_label, 0, 1, 7, 8) + + self.width_spinner = self.make_spinner(0.0, 0.0, 262144.0, 1.0, 10.0, 1) + if self.parasitedata: + self.width_spinner["adj"].set_value(self.parasitedata["width"]) + elif shelf.has_key(self.shelfkey) == 1: + self.width_spinner["adj"].set_value(shelf[self.shelfkey]["width"]) + self.width_label.set_mnemonic_widget(self.width_spinner["spinner"]) + self.table.attach(self.width_spinner["spinner"], 1, 2, 7, 8) + self.width_spinner["adj"].connect("value-changed", self.preview) + + self.merge_check = gtk.CheckButton("_Merge with layer") + if self.parasitedata: + if self.parasitedata["merge"] == 1: + self.merge_check.set_active(True) + elif shelf.has_key(self.shelfkey) == 1 and shelf[self.shelfkey]["merge"] == 1: + self.merge_check.set_active(True) + self.merge_check.show() + self.merge_check.connect("toggled", self.preview) + + self.preview_check = gtk.CheckButton("_Preview") + self.preview_check.show() + self.preview_check.connect("toggled", self.preview) + + self.dialog.vbox.hbox1 = gtk.HBox(False, 7) + self.dialog.vbox.hbox1.show() + self.dialog.vbox.pack_start(self.dialog.vbox.hbox1, True, True, 7) + self.dialog.vbox.hbox1.pack_start(self.table, True, True, 7) + self.dialog.vbox.hbox2 = gtk.HBox(False, 7) + self.dialog.vbox.hbox2.show() + self.dialog.vbox.add(self.dialog.vbox.hbox2) + self.dialog.vbox.hbox2.pack_start(self.merge_check, True, True, 10) + self.dialog.vbox.hbox3 = gtk.HBox(False, 7) + self.dialog.vbox.hbox3.show() + self.dialog.vbox.add(self.dialog.vbox.hbox3) + self.dialog.vbox.hbox3.pack_start(self.preview_check, True, True, 10) + + self.makeDialogButtons() + + self.dialog.show() + self.dialog.run() + self.removePreviews() + + def okbutton(self, widget): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + self.previewLayer = None + self.unset_hidden_layer() + if pdb.gimp_image_undo_is_enabled(self.img) == 0: + pdb.gimp_image_undo_thaw(self.img) + params = { + "gradient": self.gradient_button.get_gradient(), + "gradienttype": self.gradienttype_box.get_active(), + "repeat": self.repeat_box.get_active(), + "reverse": self.cond(self.reverse_check.get_active()), + "opacity": self.opacity_slider["adj"].get_value(), + "mode": self.mode_box.get_active(), + "centerx": self.centerx_spinner["adj"].get_value(), + "centery": self.centery_spinner["adj"].get_value(), + "angle": self.angle_slider["adj"].get_value(), + "width": self.width_spinner["adj"].get_value(), + "merge": self.cond(self.merge_check.get_active()) + } + if self.parasitedata: + self.img.remove_layer(self.parasitedata["oldid"]) + fxlayer = self.makeOverlay( + self.img, + self.drawable, + params["gradient"], + params["gradienttype"], + params["repeat"], + params["reverse"], + params["opacity"], + params["mode"], + params["centerx"], + params["centery"], + params["angle"], + params["width"], + params["merge"] + ) + if params["merge"] == 0: + self.writeParasite(self.drawable, fxlayer, + ("gradient", self.gradient_button), + ("combobox", self.gradienttype_box), + ("combobox", self.repeat_box), + ("check", self.reverse_check), + ("floatadj", self.opacity_slider["adj"]), + ("modebox", self.mode_box), + ("floatadj", self.centerx_spinner["adj"]), + ("floatadj", self.centery_spinner["adj"]), + ("floatadj", self.angle_slider["adj"]), + ("floatadj", self.width_spinner["adj"]), + ("check", self.merge_check) + ) + shelf[self.shelfkey] = params + + def resetbutton(self, widget): + self.gradient_button.set_gradient("FG to BG (RGB)") + self.gradienttype_box.set_active(0) + self.repeat_box.set_active(0) + self.reverse_check.set_active(False) + self.mode_box.set_active(NORMAL_MODE) + self.opacity_slider["adj"].set_value(100.0) + self.centerx_spinner["adj"].set_value(0.0) + self.centery_spinner["adj"].set_value(0.0) + self.angle_slider["adj"].set_value(90.0) + self.width_spinner["adj"].set_value(0.0) + self.merge_check.set_active(False) + + def readParasite(self, img, drawable): + return layerfx_base.readParasite(self, img, drawable, + layerfx_gradient_overlay.shelfkey, + ("gradient", "string"), + ("gradienttype", "int"), + ("repeat", "int"), + ("reverse", "int"), + ("opacity", "float"), + ("mode", "int"), + ("centerx", "float"), + ("centery", "float"), + ("angle", "float"), + ("width", "float"), + ("merge", "int") + ) + + def preview(self, widget, *extra): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + if self.preview_check.get_active(): + self.unset_hidden_layer() + if pdb.gimp_image_undo_is_enabled(self.img) == 1: + pdb.gimp_image_undo_freeze(self.img) + if self.parasitedata: + self.set_hidden_layer(self.parasitedata["oldid"]) + if self.merge_check.get_active(): + self.previewLayer = self.drawable.copy() + self.add_over_layer(self.previewLayer, self.drawable) + self.set_hidden_layer(self.drawable) + layer = self.previewLayer + merge = 1 + else: + layer = self.drawable + merge = 0 + self.previewLayer = self.makeOverlay( + self.img, + layer, + self.gradient_button.get_gradient(), + self.gradienttype_box.get_active(), + self.repeat_box.get_active(), + self.cond(self.reverse_check.get_active()), + self.opacity_slider["adj"].get_value(), + self.mode_box.get_active(), + self.centerx_spinner["adj"].get_value(), + self.centery_spinner["adj"].get_value(), + self.angle_slider["adj"].get_value(), + self.width_spinner["adj"].get_value(), + merge + ) + else: + gimp.displays_flush() + + def makeOverlay(self, img, drawable, gradient, gradienttype, repeat, reverse, opacity, mode, centerx, centery, angle, width, merge): + pdb.gimp_image_undo_group_start(img) + origgradient = pdb.gimp_context_get_gradient() + origselection = pdb.gimp_selection_save(img) + gradientlayer = gimp.Layer(img, "%s-gradient" % (drawable.name), drawable.width, drawable.height, (RGBA_IMAGE, GRAYA_IMAGE)[img.base_type], opacity, mode) + self.add_over_layer(gradientlayer, drawable) + gradientlayer.set_offsets(drawable.offsets[0], drawable.offsets[1]) + measures = self.getGradientMeasurements(drawable.offsets[0], drawable.offsets[1], gradienttype, centerx, centery, angle, width) + pdb.gimp_selection_none(img) + pdb.gimp_edit_clear(gradientlayer) + pdb.gimp_context_set_gradient(gradient) + if gradienttype >= 6 and gradienttype <= 8: + pdb.gimp_selection_layer_alpha(drawable) + pdb.gimp_edit_blend(gradientlayer, CUSTOM_MODE, NORMAL_MODE, gradienttype, 100.0, 1.0, repeat, reverse, False, 1, 0.0, False, measures["start"][0], measures["start"][1], measures["end"][0], measures["end"][1]) + pdb.gimp_selection_none(img) + if merge == 1: + origmask = drawable.mask + layername = drawable.name + if origmask != None: + origmask = drawable.mask.copy() + drawable.remove_mask(MASK_DISCARD) + alphamask = drawable.create_mask(ADD_ALPHA_TRANSFER_MASK) + gradientlayer = pdb.gimp_image_merge_down(img, gradientlayer, EXPAND_AS_NECESSARY) + gradientlayer.name = layername + gradientlayer.add_mask(alphamask) + gradientlayer.remove_mask(MASK_APPLY) + if origmask != None: + gradientlayer.add_mask(origmask) + else: + pdb.gimp_selection_layer_alpha(drawable) + if drawable.mask != None: + pdb.gimp_selection_combine(drawable.mask, CHANNEL_OP_INTERSECT) + alphamask = gradientlayer.create_mask(ADD_SELECTION_MASK) + gradientlayer.add_mask(alphamask) + gradientlayer.remove_mask(MASK_APPLY) + pdb.gimp_image_set_active_layer(img, drawable) + pdb.gimp_context_set_gradient(origgradient) + pdb.gimp_selection_load(origselection) + img.remove_channel(origselection) + gimp.displays_flush() + pdb.gimp_image_undo_group_end(img) + return gradientlayer + +class layerfx_pattern_overlay(layerfx_base): + shelfkey = "layerfx-pattern-overlay" + + def __init__(self, runmode, img, drawable, pattern, opacity, mode, scale, interpolation_type, merge): + self.origMsgHandler = pdb.gimp_message_get_handler() + pdb.gimp_message_set_handler(ERROR_CONSOLE) + self.img = img + self.drawable = drawable + if runmode == RUN_INTERACTIVE: + self.showDialog() + elif runmode == RUN_NONINTERACTIVE: + if self.validatedata(img, drawable, + ("pattern", pattern), + ("percent", opacity), + ("mode", mode), + ("floatrange", scale, 1.0, 1000.0), + ("intrange", interpolation_type, 0, 3), + ("boolean", merge) + ): + self.removeOldLayer() + fxlayer = self.makeOverlay(img, drawable, pattern, opacity, mode, scale, interpolation_type, merge) + if merge == 0: + self.writeParasiteRaw(drawable, fxlayer, pattern, opacity, mode, scale, interpolation_type, merge) + shelf[self.shelfkey] = { + "pattern": pattern, + "opacity": opacity, + "mode": mode, + "scale": scale, + "interpolation_type": interpolation_type, + "merge": merge + } + elif runmode == RUN_WITH_LAST_VALS and shelf.has_key(self.shelfkey) == 1: + self.removeOldLayer() + fxlayer = self.makeOverlay( + img, + drawable, + shelf[self.shelfkey]["pattern"], + shelf[self.shelfkey]["opacity"], + shelf[self.shelfkey]["mode"], + shelf[self.shelfkey]["scale"], + shelf[self.shelfkey]["interpolation_type"], + shelf[self.shelfkey]["merge"] + ) + if shelf[self.shelfkey]["merge"] == 0: + self.writeParasiteRaw(drawable, fxlayer, + shelf[self.shelfkey]["pattern"], + shelf[self.shelfkey]["opacity"], + shelf[self.shelfkey]["mode"], + shelf[self.shelfkey]["scale"], + shelf[self.shelfkey]["interpolation_type"], + shelf[self.shelfkey]["merge"] + ) + else: + pdb.gimp_message("unknown runmode") + pdb.gimp_message_set_handler(self.origMsgHandler) + + def showDialog(self): + self.dialog = gimpui.Dialog("Pattern Overlay", "patternoverlaydialog") + + self.parasitedata = self.readParasite(self.img, self.drawable) + + self.table = gtk.Table(5, 6, True) + self.table.set_homogeneous(True) + self.table.set_row_spacings(3) + self.table.set_col_spacings(3) + self.table.show() + + self.pattern_label = self.make_label("_Pattern:") + self.table.attach(self.pattern_label, 0, 2, 0, 1) + + self.pattern_button = gimpui.PatternSelector() + if self.parasitedata: + self.pattern_button.set_pattern(self.parasitedata["pattern"]) + elif shelf.has_key(self.shelfkey) == 1: + self.pattern_button.set_pattern(shelf[self.shelfkey]["pattern"]) + self.pattern_label.set_mnemonic_widget(self.pattern_button) + self.pattern_button.show() + self.table.attach(self.pattern_button, 2, 4, 0, 1) + self.pattern_button.connect("pattern-set", self.preview) + + self.mode_label = self.make_label("_Blend Mode:") + self.table.attach(self.mode_label, 0, 2, 1, 2) + + self.mode_box = self.make_blend_mode_box() + if self.parasitedata: + self.mode_box.set_active(self.parasitedata["mode"]) + elif shelf.has_key(self.shelfkey) == 1: + self.mode_box.set_active(shelf[self.shelfkey]["mode"]) + else: + self.mode_box.set_active(NORMAL_MODE) + self.mode_label.set_mnemonic_widget(self.mode_box) + self.mode_box.show() + self.table.attach(self.mode_box, 2, 6, 1, 2) + self.mode_box.connect("changed", self.preview) + + self.opacity_label = self.make_label("_Opacity:") + self.table.attach(self.opacity_label, 0, 2, 2, 3) + + self.opacity_slider = self.make_slider_and_spinner(100.0, 0.0, 100.0, 1.0, 10.0, 1) + if self.parasitedata: + self.opacity_slider["adj"].set_value(self.parasitedata["opacity"]) + elif shelf.has_key(self.shelfkey) == 1: + self.opacity_slider["adj"].set_value(shelf[self.shelfkey]["opacity"]) + self.opacity_label.set_mnemonic_widget(self.opacity_slider["spinner"]) + self.table.attach(self.opacity_slider["slider"], 2, 5, 2, 3) + self.table.attach(self.opacity_slider["spinner"], 5, 6, 2, 3) + self.opacity_slider["adj"].connect("value-changed", self.preview) + + self.scale_label = self.make_label("Scale:") + self.table.attach(self.scale_label, 0, 2, 3, 4) + + self.scale_slider = self.make_slider_and_spinner(100.0, 1.0, 1000.0, 1.0, 10.0, 1) + if self.parasitedata: + self.scale_slider["adj"].set_value(self.parasitedata["scale"]) + elif shelf.has_key(self.shelfkey) == 1: + self.scale_slider["adj"].set_value(shelf[self.shelfkey]["scale"]) + self.scale_label.set_mnemonic_widget(self.scale_slider["spinner"]) + self.table.attach(self.scale_slider["slider"], 2, 5, 3, 4) + self.table.attach(self.scale_slider["spinner"], 5, 6, 3, 4) + self.scale_slider["adj"].connect("value-changed", self.preview) + + self.interpolation_type_label = self.make_label("Interpolation:") + self.table.attach(self.interpolation_type_label, 0, 2, 4, 5) + + self.interpolation_type_box = self.make_interpolation_box() + if self.parasitedata: + self.interpolation_type_box.set_active(self.parasitedata["interpolation_type"]) + elif shelf.has_key(self.shelfkey) == 1: + self.interpolation_type_box.set_active(shelf[self.shelfkey]["interpolation_type"]) + else: + self.interpolation_type_box.set_active(0) + self.interpolation_type_box.show() + self.interpolation_type_label.set_mnemonic_widget(self.interpolation_type_box) + self.table.attach(self.interpolation_type_box, 2, 6, 4, 5) + self.interpolation_type_box.connect("changed", self.preview) + + self.merge_check = gtk.CheckButton("_Merge with layer") + if self.parasitedata: + if self.parasitedata["merge"] == 1: + self.merge_check.set_active(True) + elif shelf.has_key(self.shelfkey) == 1 and shelf[self.shelfkey]["merge"] == 1: + self.merge_check.set_active(True) + self.merge_check.show() + self.merge_check.connect("toggled", self.preview) + + self.preview_check = gtk.CheckButton("_Preview") + self.preview_check.show() + self.preview_check.connect("toggled", self.preview) + + self.dialog.vbox.hbox1 = gtk.HBox(False, 7) + self.dialog.vbox.hbox1.show() + self.dialog.vbox.pack_start(self.dialog.vbox.hbox1, True, True, 7) + self.dialog.vbox.hbox1.pack_start(self.table, True, True, 7) + self.dialog.vbox.hbox2 = gtk.HBox(False, 7) + self.dialog.vbox.hbox2.show() + self.dialog.vbox.add(self.dialog.vbox.hbox2) + self.dialog.vbox.hbox2.pack_start(self.merge_check, True, True, 10) + self.dialog.vbox.hbox3 = gtk.HBox(False, 7) + self.dialog.vbox.hbox3.show() + self.dialog.vbox.add(self.dialog.vbox.hbox3) + self.dialog.vbox.hbox3.pack_start(self.preview_check, True, True, 10) + + self.makeDialogButtons() + + self.dialog.show() + self.dialog.run() + self.removePreviews() + + def okbutton(self, widget): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + self.previewLayer = None + self.unset_hidden_layer() + if pdb.gimp_image_undo_is_enabled(self.img) == 0: + pdb.gimp_image_undo_thaw(self.img) + params = { + "pattern": self.pattern_button.get_pattern(), + "opacity": self.opacity_slider["adj"].get_value(), + "mode": self.mode_box.get_active(), + "scale": self.scale_slider["adj"].get_value(), + "interpolation_type": self.interpolation_type_box.get_active(), + "merge": self.cond(self.merge_check.get_active()) + } + if self.parasitedata: + self.img.remove_layer(self.parasitedata["oldid"]) + fxlayer = self.makeOverlay( + self.img, + self.drawable, + params["pattern"], + params["opacity"], + params["mode"], + params["scale"], + params["interpolation_type"], + params["merge"] + ) + if params["merge"] == 0: + self.writeParasite(self.drawable, fxlayer, + ("pattern", self.pattern_button), + ("floatadj", self.opacity_slider["adj"]), + ("modebox", self.mode_box), + ("floatadj", self.scale_slider["adj"]), + ("combobox", self.interpolation_type_box), + ("check", self.merge_check) + ) + shelf[self.shelfkey] = params + + def resetbutton(self, widget): + self.pattern_button.set_pattern(pdb.gimp_context_get_pattern()) + self.mode_box.set_active(NORMAL_MODE) + self.opacity_slider["adj"].set_value(100.0) + self.scale_slider["adj"].set_value(100.0) + self.interpolation_type_box.set_active(0) + self.merge_check.set_active(False) + + def readParasite(self, img, drawable): + return layerfx_base.readParasite(self, img, drawable, + layerfx_pattern_overlay.shelfkey, + ("pattern", "string"), + ("opacity", "float"), + ("mode", "int"), + ("scale", "float"), + ("interpolation_type", "int"), + ("merge", "int") + ) + + def preview(self, widget, *extra): + if self.layer_exists(self.previewLayer): + self.img.remove_layer(self.previewLayer) + if self.preview_check.get_active(): + self.unset_hidden_layer() + if pdb.gimp_image_undo_is_enabled(self.img) == 1: + pdb.gimp_image_undo_freeze(self.img) + if self.parasitedata: + self.set_hidden_layer(self.parasitedata["oldid"]) + if self.merge_check.get_active(): + self.previewLayer = self.drawable.copy() + self.add_over_layer(self.previewLayer, self.drawable) + self.unset_hidden_layer() + layer = self.previewLayer + merge = 1 + else: + layer = self.drawable + merge = 0 + self.previewLayer = self.makeOverlay( + self.img, + layer, + self.pattern_button.get_pattern(), + self.opacity_slider["adj"].get_value(), + self.mode_box.get_active(), + self.scale_slider["adj"].get_value(), + self.interpolation_type_box.get_active(), + merge + ) + else: + gimp.displays_flush() + + def makeOverlay(self, img, drawable, pattern, opacity, mode, scale, interpolation_type, merge): + pdb.gimp_image_undo_group_start(img) + origpattern = pdb.gimp_context_get_pattern() + origselection = pdb.gimp_selection_save(img) + if scale == 100.0: + layerwidth = drawable.width + layerheight = drawable.height + else: + layerwidth = int(round(drawable.width/(scale/100.0))) + layerheight = int(round(drawable.height/(scale/100.0))) + patternlayer = gimp.Layer(img, "%s-pattern" % (drawable.name), layerwidth, layerheight, (RGBA_IMAGE, GRAYA_IMAGE)[img.base_type], opacity, mode) + self.add_over_layer(patternlayer, drawable) + patternlayer.set_offsets(drawable.offsets[0], drawable.offsets[1]) + pdb.gimp_selection_none(img) + pdb.gimp_context_set_pattern(pattern) + patternlayer.fill(PATTERN_FILL) + if scale != 100.0: + pdb.gimp_drawable_transform_scale(patternlayer, drawable.offsets[0], drawable.offsets[1], drawable.offsets[0] + drawable.width, drawable.offsets[1] + drawable.height, TRANSFORM_FORWARD, interpolation_type, 1, 3, TRANSFORM_RESIZE_ADJUST) + if merge == 1: + origmask = drawable.mask + layername = drawable.name + if origmask != None: + origmask = drawable.mask.copy() + drawable.remove_mask(MASK_DISCARD) + alphamask = drawable.create_mask(ADD_ALPHA_TRANSFER_MASK) + patternlayer = pdb.gimp_image_merge_down(img, patternlayer, EXPAND_AS_NECESSARY) + patternlayer.name = layername + patternlayer.add_mask(alphamask) + patternlayer.remove_mask(MASK_APPLY) + if origmask != None: + patternlayer.add_mask(origmask) + else: + pdb.gimp_selection_layer_alpha(drawable) + if drawable.mask != None: + pdb.gimp_selection_combine(drawable.mask, CHANNEL_OP_INTERSECT) + alphamask = patternlayer.create_mask(ADD_SELECTION_MASK) + patternlayer.add_mask(alphamask) + patternlayer.remove_mask(MASK_APPLY) + pdb.gimp_image_set_active_layer(img, drawable) + pdb.gimp_context_set_pattern(origpattern) + pdb.gimp_selection_load(origselection) + img.remove_channel(origselection) + gimp.displays_flush() + pdb.gimp_image_undo_group_end(img) + return patternlayer + +class layerfx_reapply_effects(layerfx_drop_shadow, layerfx_inner_shadow, layerfx_outer_glow, layerfx_inner_glow, layerfx_bevel_emboss, layerfx_satin, layerfx_stroke, layerfx_color_overlay, layerfx_gradient_overlay, layerfx_pattern_overlay): + def __init__(self, runmode, img, drawable): + self.origMsgHandler = pdb.gimp_message_get_handler() + pdb.gimp_message_set_handler(ERROR_CONSOLE) + self.img = img + self.drawable = drawable + if runmode == RUN_INTERACTIVE or runmode == RUN_WITH_LAST_VALS: + self.reapplyEffects(img, drawable) + elif runmode == RUN_NONINTERACTIVE: + if self.validatedata(img, drawable): + self.reapplyEffects(img, drawable) + else: + pdb.gimp_message("unknown runmode") + pdb.gimp_message_set_handler(self.origMsgHandler) + + def reapplyEffects(self, img, drawable): + pdb.gimp_image_undo_group_start(img) + + self.parasitedata = { + "drop-shadow": layerfx_drop_shadow.readParasite(self, img, drawable), + "inner-shadow": layerfx_inner_shadow.readParasite(self, img, drawable), + "outer-glow": layerfx_outer_glow.readParasite(self, img, drawable), + "inner-glow": layerfx_inner_glow.readParasite(self, img, drawable), + "bevel-emboss": layerfx_bevel_emboss.readParasite(self, img, drawable), + "satin": layerfx_satin.readParasite(self, img, drawable), + "stroke": layerfx_stroke.readParasite(self, img, drawable), + "color-overlay": layerfx_color_overlay.readParasite(self, img, drawable), + "gradient-overlay": layerfx_gradient_overlay.readParasite(self, img, drawable), + "pattern-overlay": layerfx_pattern_overlay.readParasite(self, img, drawable) + } + active_effects = [] + for k, v in self.parasitedata.iteritems(): + if v: + active_effects.append(k) + active_effects.sort(cmp=lambda a, b: self.get_layer_pos(self.parasitedata[a]["oldid"]) - self.get_layer_pos(self.parasitedata[b]["oldid"])) + fx_detected = False + for j in active_effects: + if j == "drop-shadow": + fx_detected = True + layerfx_drop_shadow( + RUN_NONINTERACTIVE, + img, + drawable, + self.parasitedata["drop-shadow"]["color"], + self.parasitedata["drop-shadow"]["opacity"], + self.parasitedata["drop-shadow"]["contour"], + self.parasitedata["drop-shadow"]["noise"], + self.parasitedata["drop-shadow"]["mode"], + self.parasitedata["drop-shadow"]["spread"], + self.parasitedata["drop-shadow"]["size"], + self.parasitedata["drop-shadow"]["offsetangle"], + self.parasitedata["drop-shadow"]["offsetdist"], + self.parasitedata["drop-shadow"]["knockout"], + self.parasitedata["drop-shadow"]["merge"] + ) + elif j == "inner-shadow": + fx_detected = True + layerfx_inner_shadow( + RUN_NONINTERACTIVE, + img, + drawable, + self.parasitedata["inner-shadow"]["color"], + self.parasitedata["inner-shadow"]["opacity"], + self.parasitedata["inner-shadow"]["contour"], + self.parasitedata["inner-shadow"]["noise"], + self.parasitedata["inner-shadow"]["mode"], + self.parasitedata["inner-shadow"]["source"], + self.parasitedata["inner-shadow"]["choke"], + self.parasitedata["inner-shadow"]["size"], + self.parasitedata["inner-shadow"]["offsetangle"], + self.parasitedata["inner-shadow"]["offsetdist"], + self.parasitedata["inner-shadow"]["merge"] + ) + elif j == "outer-glow": + fx_detected = True + if self.parasitedata["outer-glow"]["filltype"] == 0: + fill = self.parasitedata["outer-glow"]["color"] + elif self.parasitedata["outer-glow"]["filltype"] == 1: + fill = self.parasitedata["outer-glow"]["gradient"] + layerfx_outer_glow( + RUN_NONINTERACTIVE, + img, + drawable, + fill, + self.parasitedata["outer-glow"]["opacity"], + self.parasitedata["outer-glow"]["contour"], + self.parasitedata["outer-glow"]["noise"], + self.parasitedata["outer-glow"]["mode"], + self.parasitedata["outer-glow"]["spread"], + self.parasitedata["outer-glow"]["size"], + self.parasitedata["outer-glow"]["knockout"], + self.parasitedata["outer-glow"]["merge"] + ) + elif j == "inner-glow": + fx_detected = True + if self.parasitedata["inner-glow"]["filltype"] == 0: + fill = self.parasitedata["inner-glow"]["color"] + elif self.parasitedata["inner-glow"]["filltype"] == 1: + fill = self.parasitedata["inner-glow"]["gradient"] + layerfx_inner_glow( + RUN_NONINTERACTIVE, + img, + drawable, + fill, + self.parasitedata["inner-glow"]["opacity"], + self.parasitedata["inner-glow"]["contour"], + self.parasitedata["inner-glow"]["noise"], + self.parasitedata["inner-glow"]["mode"], + self.parasitedata["inner-glow"]["source"], + self.parasitedata["inner-glow"]["choke"], + self.parasitedata["inner-glow"]["size"], + self.parasitedata["inner-glow"]["merge"] + ) + elif j == "bevel-emboss": + fx_detected = True + layerfx_bevel_emboss( + RUN_NONINTERACTIVE, + img, + drawable, + self.parasitedata["bevel-emboss"]["style"], + self.parasitedata["bevel-emboss"]["depth"], + self.parasitedata["bevel-emboss"]["direction"], + self.parasitedata["bevel-emboss"]["size"], + self.parasitedata["bevel-emboss"]["soften"], + self.parasitedata["bevel-emboss"]["angle"], + self.parasitedata["bevel-emboss"]["altitude"], + self.parasitedata["bevel-emboss"]["glosscontour"], + self.parasitedata["bevel-emboss"]["highlightcolor"], + self.parasitedata["bevel-emboss"]["highlightmode"], + self.parasitedata["bevel-emboss"]["highlightopacity"], + self.parasitedata["bevel-emboss"]["shadowcolor"], + self.parasitedata["bevel-emboss"]["shadowmode"], + self.parasitedata["bevel-emboss"]["shadowopacity"], + self.parasitedata["bevel-emboss"]["surfacecontour"], + self.parasitedata["bevel-emboss"]["use_texture"], + self.parasitedata["bevel-emboss"]["pattern"], + self.parasitedata["bevel-emboss"]["scale"], + self.parasitedata["bevel-emboss"]["tex_depth"], + self.parasitedata["bevel-emboss"]["invert"], + self.parasitedata["bevel-emboss"]["merge"] + ) + elif j == "satin": + fx_detected = True + layerfx_satin( + RUN_NONINTERACTIVE, + img, + drawable, + self.parasitedata["satin"]["color"], + self.parasitedata["satin"]["opacity"], + self.parasitedata["satin"]["mode"], + self.parasitedata["satin"]["offsetangle"], + self.parasitedata["satin"]["offsetdist"], + self.parasitedata["satin"]["size"], + self.parasitedata["satin"]["contour"], + self.parasitedata["satin"]["invert"], + self.parasitedata["satin"]["merge"] + ) + elif j == "stroke": + fx_detected = True + if self.parasitedata["stroke"]["filltype"] == 0: + fill = self.parasitedata["stroke"]["color"] + elif self.parasitedata["stroke"]["filltype"] == 1: + fill = ( + self.parasitedata["stroke"]["gradient"], + self.parasitedata["stroke"]["gradienttype"], + self.parasitedata["stroke"]["repeat"], + self.parasitedata["stroke"]["reverse"], + self.parasitedata["stroke"]["centerx"], + self.parasitedata["stroke"]["centery"], + self.parasitedata["stroke"]["angle"], + self.parasitedata["stroke"]["width"] + ) + elif self.parasitedata["stroke"]["filltype"] == 2: + fill = ( + self.parasitedata["stroke"]["pattern"], + self.parasitedata["stroke"]["scale"], + self.parasitedata["stroke"]["interpolation_type"] + ) + layerfx_stroke( + RUN_NONINTERACTIVE, + img, + drawable, + fill, + self.parasitedata["stroke"]["opacity"], + self.parasitedata["stroke"]["mode"], + self.parasitedata["stroke"]["size"], + self.parasitedata["stroke"]["position"], + self.parasitedata["stroke"]["merge"] + ) + elif j == "color-overlay": + fx_detected = True + layerfx_color_overlay( + RUN_NONINTERACTIVE, + img, + drawable, + self.parasitedata["color-overlay"]["color"], + self.parasitedata["color-overlay"]["opacity"], + self.parasitedata["color-overlay"]["mode"], + self.parasitedata["color-overlay"]["merge"] + ) + elif j == "gradient-overlay": + fx_detected = True + layerfx_gradient_overlay( + RUN_NONINTERACTIVE, + img, + drawable, + self.parasitedata["gradient-overlay"]["gradient"], + self.parasitedata["gradient-overlay"]["gradienttype"], + self.parasitedata["gradient-overlay"]["repeat"], + self.parasitedata["gradient-overlay"]["reverse"], + self.parasitedata["gradient-overlay"]["opacity"], + self.parasitedata["gradient-overlay"]["mode"], + self.parasitedata["gradient-overlay"]["centerx"], + self.parasitedata["gradient-overlay"]["centery"], + self.parasitedata["gradient-overlay"]["angle"], + self.parasitedata["gradient-overlay"]["width"], + self.parasitedata["gradient-overlay"]["merge"] + ) + elif j == "pattern-overlay": + fx_detected = True + layerfx_pattern_overlay( + RUN_NONINTERACTIVE, + img, + drawable, + self.parasitedata["pattern-overlay"]["pattern"], + self.parasitedata["pattern-overlay"]["opacity"], + self.parasitedata["pattern-overlay"]["mode"], + self.parasitedata["pattern-overlay"]["scale"], + self.parasitedata["pattern-overlay"]["interpolation_type"], + self.parasitedata["pattern-overlay"]["merge"] + ) + if fx_detected == False: + self.show_error_msg("No effects found on this layer.", ValueError) + gimp.displays_flush() + pdb.gimp_image_undo_group_end(img) + +class layerfxplugin(gimpplugin.plugin): + def start(self): + gimp.main(self.init, self.quit, self.query, self._run) + + def init(self): + pass + + def quit(self): + pass + + def query(self): + authorname = "Jonathan Stipe" + copyrightname = "Jonathan Stipe" + imgmenupath = "/Layer/La_yer Effects/" + layersmenupath = "/_Layer Effects/" + date = "July 2008" + modevals = "{ NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }" + + drop_shadow_description = "Adds a drop shadow to a layer." + drop_shadow_help = "Adds a drop shadow to a layer." + drop_shadow_params = ( + (PDB_INT32, "run_mode", "Run mode"), + (PDB_IMAGE, "image", "Input image"), + (PDB_DRAWABLE, "drawable", "Input drawable"), + (PDB_COLOR, "color", "The shadow's color"), + (PDB_FLOAT, "opacity", "The shadow's opacity (0 <= opacity <= 100)"), + (PDB_INT32, "contour", "A contour used to modify the shadow's intensity curve (0 <= contour <= 11)"), + (PDB_FLOAT, "noise", "The amount of noise applied to the shadow (0 <= noise <= 100)"), + (PDB_INT32, "mode", "The shadow layer's combination mode %s" % (modevals)), + (PDB_FLOAT, "spread", "Spread (0 <= spread <= 100)"), + (PDB_INT32, "size", "The size of the shadow's blur (0 <= size <= 250)"), + (PDB_FLOAT, "offset_angle", "The angle the shadow is cast in (-180 <= offset_angle <= 180)"), + (PDB_FLOAT, "offset_distance", "The distance between the layer and the shadow (0 <= offset_distance <= 30000)"), + (PDB_INT32, "knockout", "Layer knocks out Drop Shadow (TRUE or FALSE)"), + (PDB_INT32, "merge", "Merge with layer (TRUE or FALSE)") + ) + gimp.install_procedure( + "python_layerfx_drop_shadow", + drop_shadow_description, + drop_shadow_help, + authorname, + copyrightname, + date, + "%s_Drop Shadow..." % (imgmenupath), + "RGBA, GRAYA", + PLUGIN, + drop_shadow_params, + [] + ) + gimp.install_procedure( + "python_layer_fx_drop_shadow", + drop_shadow_description, + drop_shadow_help, + authorname, + copyrightname, + date, + "%s_Drop Shadow..." % (layersmenupath), + "RGBA, GRAYA", + PLUGIN, + drop_shadow_params, + [] + ) + inner_shadow_description = "Adds an inner shadow to a layer" + inner_shadow_help = "Adds an inner shadow to a layer" + inner_shadow_params = ( + (PDB_INT32, "run_mode", "Run mode"), + (PDB_IMAGE, "image", "Input image"), + (PDB_DRAWABLE, "drawable", "Input drawable"), + (PDB_COLOR, "color", "The shadow's color"), + (PDB_FLOAT, "opacity", "The shadow's opacity (0 <= opacity <= 100)"), + (PDB_INT32, "contour", "A contour used to modify the shadow's intensity curve (0 <= contour <= 11)"), + (PDB_FLOAT, "noise", "The amount of noise applied to the shadow (0 <= noise <= 100)"), + (PDB_INT32, "mode", "The shadow layer's combination mode %s" % (modevals)), + (PDB_INT32, "source", "Source (0 = Center, 1 = Edge)"), + (PDB_FLOAT, "choke", "Choke (0 <= choke <= 100)"), + (PDB_INT32, "size", "The size of the shadow's blur (0 <= size <= 250)"), + (PDB_FLOAT, "offset_angle", "The angle the shadow is cast in (-180 <= offset_angle <= 180)"), + (PDB_FLOAT, "offset_distance", "The distance between the layer and the shadow (0 <= offset_distance <= 30000)"), + (PDB_INT32, "merge", "Merge with layer (TRUE or FALSE)") + ) + gimp.install_procedure( + "python_layerfx_inner_shadow", + inner_shadow_description, + inner_shadow_help, + authorname, + copyrightname, + date, + "%sI_nner Shadow..." % (imgmenupath), + "RGB*, GRAY*", + PLUGIN, + inner_shadow_params, + [] + ) + gimp.install_procedure( + "python_layer_fx_inner_shadow", + inner_shadow_description, + inner_shadow_help, + authorname, + copyrightname, + date, + "%sI_nner Shadow..." % (layersmenupath), + "RGB*, GRAY*", + PLUGIN, + inner_shadow_params, + [] + ) + outer_glow_description = "Creates an outer glow effect around a layer." + outer_glow_help = "Creates an outer glow effect around a layer." + outer_glow_params = ( + (PDB_INT32, "run_mode", "Run mode"), + (PDB_IMAGE, "image", "Input image"), + (PDB_DRAWABLE, "drawable", "Input drawable"), + (PDB_COLOR, "color", "The glow's color. You can also use a gradient name here."), + (PDB_FLOAT, "opacity", "The glow's opacity (0 <= opacity <= 100)"), + (PDB_INT32, "contour", "A contour used to modify the glow's intensity curve (0 <= contour <= 11)"), + (PDB_FLOAT, "noise", "The amount of noise applied to the glow (0 <= noise <= 100)"), + (PDB_INT32, "mode", "The glow layer's combination mode %s" % (modevals)), + (PDB_FLOAT, "spread", "Spread (0 <= spread <= 100)"), + (PDB_INT32, "size", "The size of the glow's blur (0 <= size <= 250)"), + (PDB_INT32, "knockout", "Layer knocks out Outer Glow (TRUE or FALSE)"), + (PDB_INT32, "merge", "Merge with layer (TRUE or FALSE)") + ) + gimp.install_procedure( + "python_layerfx_outer_glow", + outer_glow_description, + outer_glow_help, + authorname, + copyrightname, + date, + "%s_Outer Glow..." % (imgmenupath), + "RGBA, GRAYA", + PLUGIN, + outer_glow_params, + [] + ) + gimp.install_procedure( + "python_layer_fx_outer_glow", + outer_glow_description, + outer_glow_help, + authorname, + copyrightname, + date, + "%s_Outer Glow..." % (layersmenupath), + "RGBA, GRAYA", + PLUGIN, + outer_glow_params, + [] + ) + inner_glow_description = "Creates an inner glow effect around a layer." + inner_glow_help = "Creates an inner glow effect around a layer." + inner_glow_params = ( + (PDB_INT32, "run_mode", "Run mode"), + (PDB_IMAGE, "image", "Input image"), + (PDB_DRAWABLE, "drawable", "Input drawable"), + (PDB_COLOR, "color", "The glow's color. You can also use a gradient name here."), + (PDB_FLOAT, "opacity", "The glow's opacity (0 <= opacity <= 100)"), + (PDB_INT32, "contour", "A contour used to modify the glow's intensity curve (0 <= contour <= 11)"), + (PDB_FLOAT, "noise", "The amount of noise applied to the glow (0 <= noise <= 100)"), + (PDB_INT32, "mode", "The glow layer's combination mode %s" % (modevals)), + (PDB_INT32, "source", "Source (0 = Center, 1 = Edge)"), + (PDB_FLOAT, "choke", "Choke (0 <= choke <= 100)"), + (PDB_INT32, "size", "The size of the glow's blur (0 <= size <= 250)"), + (PDB_INT32, "merge", "Merge with layer (TRUE or FALSE)") + ) + gimp.install_procedure( + "python_layerfx_inner_glow", + inner_glow_description, + inner_glow_help, + authorname, + copyrightname, + date, + "%s_Inner Glow..." % (imgmenupath), + "RGB*, GRAY*", + PLUGIN, + inner_glow_params, + [] + ) + gimp.install_procedure( + "python_layer_fx_inner_glow", + inner_glow_description, + inner_glow_help, + authorname, + copyrightname, + date, + "%s_Inner Glow..." % (layersmenupath), + "RGB*, GRAY*", + PLUGIN, + inner_glow_params, + [] + ) + bevel_emboss_description = "Creates beveling and embossing effects over a layer." + bevel_emboss_help = "Creates beveling and embossing effects over a layer." + bevel_emboss_params = ( + (PDB_INT32, "run_mode", "Run mode"), + (PDB_IMAGE, "image", "Input image"), + (PDB_DRAWABLE, "drawable", "Input drawable"), + (PDB_INT32, "style", "Beveling Style (0 = Outer Bevel, 1 = Inner Bevel, 2 = Emboss, 3 = Pillow Emboss)"), + (PDB_INT32, "depth", "Depth (1 <= depth <= 65)"), + (PDB_INT32, "direction", "Direction (0 = Up, 1 = Down)"), + (PDB_INT32, "size", "The size of the bevel (0 <= size <= 250)"), + (PDB_INT32, "soften", "Soften (0 <= soften <= 16)"), + (PDB_FLOAT, "angle", "Angle of the light source (-180 <= angle <= 180)"), + (PDB_FLOAT, "altitude", "Altitude of the light source (0 <= altitude <= 90)"), + (PDB_INT32, "gloss_contour", "A contour used to modify the gloss's intensity curve (0 <= gloss_contour <= 11)"), + (PDB_COLOR, "highlight_color", "The highlight color"), + (PDB_INT32, "highlight_mode", "The highlight layer's combination mode %s" % (modevals)), + (PDB_FLOAT, "highlight_opacity", "The highlight's opacity (0 <= highlight_opacity <= 100)"), + (PDB_COLOR, "shadow_color", "The shadow color"), + (PDB_INT32, "shadow_mode", "The shadow layer's combination mode %s" % (modevals)), + (PDB_FLOAT, "shadow_opacity", "The shadow's opacity (0 <= shadow_opacity <= 100)"), + (PDB_INT32, "surface_contour", "A contour used to modify the surface shape (0 <= gloss_contour <= 11)"), + (PDB_INT32, "use_texture", "Apply a texture to the surface (TRUE or FALSE)"), + (PDB_STRING, "pattern", "The texture pattern"), + (PDB_FLOAT, "scale", "The texture scale (1 <= scale <= 1000)"), + (PDB_FLOAT, "tex_depth", "The texture depth (-1000 <= tex_depth <= 1000)"), + (PDB_INT32, "invert", "Invert (TRUE or FALSE)"), + (PDB_INT32, "merge", "Merge with layer (TRUE or FALSE)") + ) + gimp.install_procedure( + "python_layerfx_bevel_emboss", + bevel_emboss_description, + bevel_emboss_help, + authorname, + copyrightname, + date, + "%s_Bevel and Emboss..." % (imgmenupath), + "RGBA, GRAYA", + PLUGIN, + bevel_emboss_params, + [] + ) + gimp.install_procedure( + "python_layer_fx_bevel_emboss", + bevel_emboss_description, + bevel_emboss_help, + authorname, + copyrightname, + date, + "%s_Bevel and Emboss..." % (layersmenupath), + "RGBA, GRAYA", + PLUGIN, + bevel_emboss_params, + [] + ) + satin_description = "Creates a satin effect over a layer." + satin_help = "Creates a satin effect over a layer." + satin_params = ( + (PDB_INT32, "run_mode", "Run mode"), + (PDB_IMAGE, "image", "Input image"), + (PDB_DRAWABLE, "drawable", "Input drawable"), + (PDB_COLOR, "color", "The shadow color"), + (PDB_FLOAT, "opacity", "The shadow opacity (0 <= opacity <= 100)"), + (PDB_INT32, "mode", "The shadow layer's combination mode %s" % (modevals)), + (PDB_FLOAT, "offset_angle", "The angle the shadow is cast in (-180 <= offset_angle <= 180)"), + (PDB_FLOAT, "offset_distance", "The offset distance (0 <= offset_distance <= 30000)"), + (PDB_INT32, "size", "The size of the satin's blur (0 <= size <= 250)"), + (PDB_INT32, "contour", "A contour used to modify the shadow's intensity curve (0 <= contour <= 11)"), + (PDB_INT32, "invert", "Invert (TRUE or FALSE)"), + (PDB_INT32, "merge", "Merge with layer (TRUE or FALSE)") + ) + gimp.install_procedure( + "python_layerfx_satin", + satin_description, + satin_help, + authorname, + copyrightname, + date, + "%s_Satin..." % (imgmenupath), + "RGBA, GRAYA", + PLUGIN, + satin_params, + [] + ) + gimp.install_procedure( + "python_layer_fx_satin", + satin_description, + satin_help, + authorname, + copyrightname, + date, + "%s_Satin..." % (layersmenupath), + "RGBA, GRAYA", + PLUGIN, + satin_params, + [] + ) + stroke_description = "Creates a stroke around a layer." + stroke_help = "Creates a stroke around a layer." + stroke_params = ( + (PDB_INT32, "run_mode", "Run mode"), + (PDB_IMAGE, "image", "Input image"), + (PDB_DRAWABLE, "drawable", "Input drawable"), + (PDB_COLOR, "color", "The stroke color. This can also be a list or tuple to use gradients or patterns. For a gradient stroke, use a list or tuple of the form (gradient_name, gradient_type, repeat, reverse, center_x, center_y, angle, width). For a patterned stroke, use the form (pattern_name, scale, interpolation_type)."), + (PDB_FLOAT, "opacity", "The stroke opacity (0 <= opacity <= 100)"), + (PDB_INT32, "mode", "The stroke layer's combination mode %s" % (modevals)), + (PDB_INT32, "size", "The stroke's width (1 <= size <= 250)"), + (PDB_FLOAT, "position", "The stroke's position; 0 = inside the layer borders, 100 = outside the layer border (0 <= position <= 100)"), + (PDB_INT32, "merge", "Merge with layer (TRUE or FALSE)") + ) + gimp.install_procedure( + "python_layerfx_stroke", + stroke_description, + stroke_help, + authorname, + copyrightname, + date, + "%sS_troke..." % (imgmenupath), + "RGBA, GRAYA", + PLUGIN, + stroke_params, + [] + ) + gimp.install_procedure( + "python_layer_fx_stroke", + stroke_description, + stroke_help, + authorname, + copyrightname, + date, + "%sS_troke..." % (layersmenupath), + "RGBA, GRAYA", + PLUGIN, + stroke_params, + [] + ) + color_overlay_description = "Overlays a color over a layer." + color_overlay_help = "Overlays a color over a layer." + color_overlay_params = ( + (PDB_INT32, "run_mode", "Run mode"), + (PDB_IMAGE, "image", "Input image"), + (PDB_DRAWABLE, "drawable", "Input drawable"), + (PDB_COLOR, "color", "The color to overlay"), + (PDB_FLOAT, "opacity", "The overlay opacity (0 <= opacity <= 100)"), + (PDB_INT32, "mode", "The overlay layer's combination mode %s" % (modevals)), + (PDB_INT32, "merge", "Merge with layer (TRUE or FALSE)") + ) + gimp.install_procedure( + "python_layerfx_color_overlay", + color_overlay_description, + color_overlay_help, + authorname, + copyrightname, + date, + "%s_Color Overlay..." % (imgmenupath), + "RGB*, GRAY*", + PLUGIN, + color_overlay_params, + [] + ) + gimp.install_procedure( + "python_layer_fx_color_overlay", + color_overlay_description, + color_overlay_help, + authorname, + copyrightname, + date, + "%s_Color Overlay..." % (layersmenupath), + "RGB*, GRAY*", + PLUGIN, + color_overlay_params, + [] + ) + gradient_overlay_description = "Overlays a gradient over a layer." + gradient_overlay_help = "Overlays a gradient over a layer." + gradient_overlay_params = ( + (PDB_INT32, "run_mode", "Run mode"), + (PDB_IMAGE, "image", "Input image"), + (PDB_DRAWABLE, "drawable", "Input drawable"), + (PDB_STRING, "gradient", "The gradient to overlay"), + (PDB_INT32, "gradient_type", "The type of gradient { GRADIENT-LINEAR (0), GRADIENT-BILINEAR (1), GRADIENT-RADIAL (2), GRADIENT-SQUARE (3), GRADIENT-CONICAL-SYMMETRIC (4), GRADIENT-CONICAL-ASYMMETRIC (5), GRADIENT-SHAPEBURST-ANGULAR (6), GRADIENT-SHAPEBURST-SPHERICAL (7), GRADIENT-SHAPEBURST-DIMPLED (8), GRADIENT-SPIRAL-CLOCKWISE (9), GRADIENT-SPIRAL-ANTICLOCKWISE (10) }"), + (PDB_INT32, "repeat", "Repeat mode { REPEAT-NONE (0), REPEAT-SAWTOOTH (1), REPEAT-TRIANGULAR (2) }"), + (PDB_INT32, "reverse", "Use the reverse gradient (TRUE or FALSE)"), + (PDB_FLOAT, "opacity", "The overlay opacity (0 <= opacity <= 100)"), + (PDB_INT32, "mode", "The overlay layer's combination mode %s" % (modevals)), + (PDB_FLOAT, "center_x", "X coordinate of center"), + (PDB_FLOAT, "center_y", "Y coordinate of center"), + (PDB_FLOAT, "angle", "Gradient angle (-180 <= angle <= 180)"), + (PDB_FLOAT, "width", "Gradient width (0 <= width <= 262144"), + (PDB_INT32, "merge", "Merge with layer (TRUE or FALSE)") + ) + gimp.install_procedure( + "python_layerfx_gradient_overlay", + gradient_overlay_description, + gradient_overlay_help, + authorname, + copyrightname, + date, + "%s_Gradient Overlay..." % (imgmenupath), + "RGB*, GRAY*", + PLUGIN, + gradient_overlay_params, + [] + ) + gimp.install_procedure( + "python_layer_fx_gradient_overlay", + gradient_overlay_description, + gradient_overlay_help, + authorname, + copyrightname, + date, + "%s_Gradient Overlay..." % (layersmenupath), + "RGB*, GRAY*", + PLUGIN, + gradient_overlay_params, + [] + ) + pattern_overlay_description = "Overlays a pattern over a layer." + pattern_overlay_help = "Overlays a pattern over a layer." + pattern_overlay_params = ( + (PDB_INT32, "run_mode", "Run mode"), + (PDB_IMAGE, "image", "Input image"), + (PDB_DRAWABLE, "drawable", "Input drawable"), + (PDB_STRING, "pattern", "The pattern to overlay"), + (PDB_FLOAT, "opacity", "The overlay opacity (0 <= opacity <= 100)"), + (PDB_INT32, "mode", "The overlay layer's combination mode %s" % (modevals)), + (PDB_FLOAT, "scale", "Amount to scale the pattern (1 <= scale <= 1000)"), + (PDB_INT32, "interpolation", "Type of interpolation { INTERPOLATION-NONE (0), INTERPOLATION-LINEAR (1), INTERPOLATION-CUBIC (2), INTERPOLATION-LANCZOS (3) }"), + (PDB_INT32, "merge", "Merge with layer (TRUE or FALSE)") + ) + gimp.install_procedure( + "python_layerfx_pattern_overlay", + pattern_overlay_description, + pattern_overlay_help, + authorname, + copyrightname, + date, + "%s_Pattern Overlay..." % (imgmenupath), + "RGB*, GRAY*", + PLUGIN, + pattern_overlay_params, + [] + ) + gimp.install_procedure( + "python_layer_fx_pattern_overlay", + pattern_overlay_description, + pattern_overlay_help, + authorname, + copyrightname, + date, + "%s_Pattern Overlay..." % (layersmenupath), + "RGB*, GRAY*", + PLUGIN, + pattern_overlay_params, + [] + ) + reapply_effects_description = "Reapply all effects previously applied to a layer." + reapply_effects_help = "Reapply all effects previously applied to a layer. NOTE: Does not work for effects that were applied with the \"Merge with layer\" option active." + reapply_effects_params = ( + (PDB_INT32, "run_mode", "Run mode"), + (PDB_IMAGE, "image", "Input image"), + (PDB_DRAWABLE, "drawable", "Input drawable") + ) + gimp.install_procedure( + "python_layerfx_reapply_effects", + reapply_effects_description, + reapply_effects_help, + authorname, + copyrightname, + date, + "%s_Reapply Effects" % (imgmenupath), + "RGB*, GRAY*", + PLUGIN, + reapply_effects_params, + [] + ) + gimp.install_procedure( + "python_layer_fx_reapply_effects", + reapply_effects_description, + reapply_effects_help, + authorname, + copyrightname, + date, + "%s_Reapply Effects" % (layersmenupath), + "RGB*, GRAY*", + PLUGIN, + reapply_effects_params, + [] + ) + + def python_layerfx_drop_shadow( + self, + runmode, + img, + drawable, + color = gimpcolor.RGB(0, 0, 0, 255), + opacity = 75.0, + contour = 0, + noise = 0.0, + mode = MULTIPLY_MODE, + spread = 0.0, + size = 5, + offsetangle = 120.0, + offsetdist = 5.0, + knockout = 0, + merge = 0 + ): + layerfx_drop_shadow(runmode, img, drawable, color, opacity, contour, noise, mode, spread, size, offsetangle, offsetdist, knockout, merge) + + def python_layer_fx_drop_shadow( + self, + runmode, + img, + drawable, + color = gimpcolor.RGB(0, 0, 0, 255), + opacity = 75.0, + contour = 0, + noise = 0.0, + mode = MULTIPLY_MODE, + spread = 0.0, + size = 5, + offsetangle = 120.0, + offsetdist = 5.0, + knockout = 0, + merge = 0 + ): + layerfx_drop_shadow(runmode, img, drawable, color, opacity, contour, noise, mode, spread, size, offsetangle, offsetdist, knockout, merge) + + def python_layerfx_inner_shadow( + self, + runmode, + img, + drawable, + color = gimpcolor.RGB(0, 0, 0, 255), + opacity = 75.0, + contour = 0, + noise = 0.0, + mode = MULTIPLY_MODE, + source = 1, + choke = 0.0, + size = 5, + offsetangle = 120.0, + offsetdist = 5.0, + merge = 0 + ): + layerfx_inner_shadow(runmode, img, drawable, color, opacity, contour, noise, mode, source, choke, size, offsetangle, offsetdist, merge) + + def python_layer_fx_inner_shadow( + self, + runmode, + img, + drawable, + color = gimpcolor.RGB(0, 0, 0, 255), + opacity = 75.0, + contour = 0, + noise = 0.0, + mode = MULTIPLY_MODE, + source = 1, + choke = 0.0, + size = 5, + offsetangle = 120.0, + offsetdist = 5.0, + merge = 0 + ): + layerfx_inner_shadow(runmode, img, drawable, color, opacity, contour, noise, mode, source, choke, size, offsetangle, offsetdist, merge) + + def python_layerfx_outer_glow( + self, + runmode, + img, + drawable, + color = gimpcolor.RGB(255, 255, 190, 255), + opacity = 75.0, + contour = 0, + noise = 0.0, + mode = SCREEN_MODE, + spread = 0.0, + size = 5, + knockout = 0, + merge = 0 + ): + layerfx_outer_glow(runmode, img, drawable, color, opacity, contour, noise, mode, spread, size, knockout, merge) + + def python_layer_fx_outer_glow( + self, + runmode, + img, + drawable, + color = gimpcolor.RGB(255, 255, 190, 255), + opacity = 75.0, + contour = 0, + noise = 0.0, + mode = SCREEN_MODE, + spread = 0.0, + size = 5, + knockout = 0, + merge = 0 + ): + layerfx_outer_glow(runmode, img, drawable, color, opacity, contour, noise, mode, spread, size, knockout, merge) + + def python_layerfx_inner_glow( + self, + runmode, + img, + drawable, + color = gimpcolor.RGB(255, 255, 190, 255), + opacity = 75.0, + contour = 0, + noise = 0.0, + mode = SCREEN_MODE, + source = 1, + choke = 0.0, + size = 5, + merge = 0 + ): + layerfx_inner_glow(runmode, img, drawable, color, opacity, contour, noise, mode, source, choke, size, merge) + + def python_layer_fx_inner_glow( + self, + runmode, + img, + drawable, + color = gimpcolor.RGB(255, 255, 190, 255), + opacity = 75.0, + contour = 0, + noise = 0.0, + mode = SCREEN_MODE, + source = 1, + choke = 0.0, + size = 5, + merge = 0 + ): + layerfx_inner_glow(runmode, img, drawable, color, opacity, contour, noise, mode, source, choke, size, merge) + + def python_layerfx_bevel_emboss( + self, + runmode, + img, + drawable, + style = 0, + depth = 3, + direction = 0, + size = 5, + soften = 0, + angle = 120.0, + altitude = 30.0, + glosscontour = 0, + highlightcolor = gimpcolor.RGB(255, 255, 255, 255), + highlightmode = SCREEN_MODE, + highlightopacity = 75.0, + shadowcolor = gimpcolor.RGB(0, 0, 0, 255), + shadowmode = MULTIPLY_MODE, + shadowopacity = 75.0, + surfacecontour = 0, + use_texture = 0, + pattern = "", + scale = 100.0, + tex_depth = 100.0, + invert = 0, + merge = 0 + ): + layerfx_bevel_emboss(runmode, img, drawable, style, depth, direction, size, soften, angle, altitude, glosscontour, highlightcolor, highlightmode, highlightopacity, shadowcolor, shadowmode, shadowopacity, surfacecontour, use_texture, pattern, scale, tex_depth, invert, merge) + + def python_layer_fx_bevel_emboss( + self, + runmode, + img, + drawable, + style = 0, + depth = 3, + direction = 0, + size = 5, + soften = 0, + angle = 120.0, + altitude = 30.0, + glosscontour = 0, + highlightcolor = gimpcolor.RGB(255, 255, 255, 255), + highlightmode = SCREEN_MODE, + highlightopacity = 75.0, + shadowcolor = gimpcolor.RGB(0, 0, 0, 255), + shadowmode = MULTIPLY_MODE, + shadowopacity = 75.0, + surfacecontour = 0, + use_texture = 0, + pattern = "", + scale = 100.0, + tex_depth = 100.0, + invert = 0, + merge = 0 + ): + layerfx_bevel_emboss(runmode, img, drawable, style, depth, direction, size, soften, angle, altitude, glosscontour, highlightcolor, highlightmode, highlightopacity, shadowcolor, shadowmode, shadowopacity, surfacecontour, use_texture, pattern, scale, tex_depth, invert, merge) + + def python_layerfx_satin( + self, + runmode, + img, + drawable, + color = gimpcolor.RGB(0, 0, 0, 255), + opacity = 75.0, + mode = MULTIPLY_MODE, + offsetangle = 19.0, + offsetdist = 11.0, + size = 14, + contour = 5, + invert = 1, + merge = 0 + ): + layerfx_satin(runmode, img, drawable, color, opacity, mode, offsetangle, offsetdist, size, contour, invert, merge) + + def python_layer_fx_satin( + self, + runmode, + img, + drawable, + color = gimpcolor.RGB(0, 0, 0, 255), + opacity = 75.0, + mode = MULTIPLY_MODE, + offsetangle = 19.0, + offsetdist = 11.0, + size = 14, + contour = 5, + invert = 1, + merge = 0 + ): + layerfx_satin(runmode, img, drawable, color, opacity, mode, offsetangle, offsetdist, size, contour, invert, merge) + + def python_layerfx_stroke( + self, + runmode, + img, + drawable, + color = gimpcolor.RGB(255, 0, 0, 255), + opacity = 100.0, + mode = NORMAL_MODE, + size = 3, + position = 50.0, + merge = 0 + ): + layerfx_stroke(runmode, img, drawable, color, opacity, mode, size, position, merge) + + def python_layer_fx_stroke( + self, + runmode, + img, + drawable, + color = gimpcolor.RGB(255, 0, 0, 255), + opacity = 100.0, + mode = NORMAL_MODE, + size = 3, + position = 50.0, + merge = 0 + ): + layerfx_stroke(runmode, img, drawable, color, opacity, mode, size, position, merge) + + def python_layerfx_color_overlay( + self, + runmode, + img, + drawable, + color = gimpcolor.RGB(255, 255, 255, 255), + opacity = 100.0, + mode = NORMAL_MODE, + merge = 0 + ): + layerfx_color_overlay(runmode, img, drawable, color, opacity, mode, merge) + + def python_layer_fx_color_overlay( + self, + runmode, + img, + drawable, + color = gimpcolor.RGB(255, 255, 255, 255), + opacity = 100.0, + mode = NORMAL_MODE, + merge = 0 + ): + layerfx_color_overlay(runmode, img, drawable, color, opacity, mode, merge) + + def python_layerfx_gradient_overlay( + self, + runmode, + img, + drawable, + gradient = "FG to BG (RGB)", + gradienttype = GRADIENT_LINEAR, + repeat = REPEAT_NONE, + reverse = 0, + opacity = 100.0, + mode = NORMAL_MODE, + centerx = 0.0, + centery = 0.0, + angle = 90.0, + width = 10.0, + merge = 0 + ): + layerfx_gradient_overlay(runmode, img, drawable, gradient, gradienttype, repeat, reverse, opacity, mode, centerx, centery, angle, width, merge) + + def python_layer_fx_gradient_overlay( + self, + runmode, + img, + drawable, + gradient = "FG to BG (RGB)", + gradienttype = GRADIENT_LINEAR, + repeat = REPEAT_NONE, + reverse = 0, + opacity = 100.0, + mode = NORMAL_MODE, + centerx = 0.0, + centery = 0.0, + angle = 90.0, + width = 10.0, + merge = 0 + ): + layerfx_gradient_overlay(runmode, img, drawable, gradient, gradienttype, repeat, reverse, opacity, mode, centerx, centery, angle, width, merge) + + def python_layerfx_pattern_overlay( + self, + runmode, + img, + drawable, + pattern = "", + opacity = 100.0, + mode = NORMAL_MODE, + scale = 100.0, + interpolation_type = INTERPOLATION_NONE, + merge = 0 + ): + layerfx_pattern_overlay(runmode, img, drawable, pattern, opacity, mode, scale, interpolation_type, merge) + + def python_layer_fx_pattern_overlay( + self, + runmode, + img, + drawable, + pattern = "", + opacity = 100.0, + mode = NORMAL_MODE, + scale = 100.0, + interpolation_type = INTERPOLATION_NONE, + merge = 0 + ): + layerfx_pattern_overlay(runmode, img, drawable, pattern, opacity, mode, scale, interpolation_type, merge) + + def python_layerfx_reapply_effects( + self, + runmode, + img, + drawable + ): + layerfx_reapply_effects(runmode, img, drawable) + + def python_layer_fx_reapply_effects( + self, + runmode, + img, + drawable + ): + layerfx_reapply_effects(runmode, img, drawable) + +if __name__ == "__main__": + layerfxplugin().start() diff --git a/2.10/pluginrc b/2.10/pluginrc new file mode 100644 index 0000000..464d226 --- /dev/null +++ b/2.10/pluginrc @@ -0,0 +1,4750 @@ +# GIMP pluginrc +# +# This file can safely be removed and will be automatically regenerated by +# querying the installed plug-ins. + +(protocol-version 26) +(file-version 5) + +(plug-in-def "${gimp_plug_in_dir}/plug-ins/web-browser/web-browser" 1584945099 + (proc-def "plug-in-web-browser" 1 + "Open an URL in the user specified web browser" + "Opens the given URL in the user specified web browser." + "Henrik Brix Andersen " + "2003" + "2003/09/16" + "" + 0 + (icon icon-name -1 "") + "" + 1 0 + (proc-arg 4 "url" "URL to open"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/wavelet-decompose/wavelet-decompose" 1584945099 + (proc-def "plug-in-wavelet-decompose" 1 + "Wavelet decompose" + "Compute and render wavelet scales" + "Miroslav Talasek " + "Miroslav Talasek " + "19january 2017" + "_Wavelet-decompose..." + 1 + (menu-path "/Filters/Enhance") + (icon icon-name -1 "") + "RGB*, GRAY*" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "scales" "Number of scales (1-7)") + (proc-arg 0 "create-group" "Create a layer group to store the decomposition") + (proc-arg 0 "create-masks" "Add a layer mask to each scales layers"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/warp/warp" 1584945099 + (proc-def "plug-in-warp" 1 + "Twist or smear image in many different ways" + "Smears an image along vector paths calculated as the gradient of a separate control matrix. The effect can look like brushstrokes of acrylic or watercolor paint, in some cases." + "John P. Beale" + "John P. Beale" + "1997" + "_Warp..." + 1 + (menu-path "/Filters/Map") + (icon icon-name -1 "") + "RGB*, GRAY*" + 17 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 3 "amount" "Pixel displacement multiplier") + (proc-arg 16 "warp-map" "Displacement control map") + (proc-arg 0 "iter" "Iteration count (last required argument)") + (proc-arg 3 "dither" "Random dither amount (first optional argument)") + (proc-arg 3 "angle" "Angle of gradient vector rotation") + (proc-arg 0 "wrap-type" "Edge behavior: { WRAP (0), SMEAR (1), BLACK (2), COLOR (3) }") + (proc-arg 16 "mag-map" "Magnitude control map") + (proc-arg 0 "mag-use" "Use magnitude map: { FALSE (0), TRUE (1) }") + (proc-arg 0 "substeps" "Substeps between image updates") + (proc-arg 0 "grad-map" "Gradient control map") + (proc-arg 3 "grad-scale" "Scaling factor for gradient map (0=don't use)") + (proc-arg 0 "vector-map" "Fixed vector control map") + (proc-arg 3 "vector-scale" "Scaling factor for fixed vector map (0=don't use)") + (proc-arg 3 "vector-angle" "Angle for fixed vector map"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/van-gogh-lic/van-gogh-lic" 1584945099 + (proc-def "plug-in-lic" 1 + "Special effects that nobody understands" + "No help yet" + "Tom Bech & Federico Mena Quintero" + "Tom Bech & Federico Mena Quintero" + "Version 0.14, September 24 1997" + "_Van Gogh (LIC)..." + 1 + (menu-path "/Filters/Artistic") + (icon icon-name -1 "") + "RGB*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/unit-editor/unit-editor" 1584945099 + (proc-def "plug-in-unit-editor" 1 + "Create or alter units used in GIMP" + "The GIMP unit editor" + "Michael Natterer " + "Michael Natterer " + "2000" + "U_nits" + 1 + (menu-path "/Edit/Preferences") + (icon icon-name -1 "gimp-tool-measure") + "" + 1 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/tile-small/tile-small" 1584945099 + (proc-def "plug-in-small-tiles" 1 + "Tile image into smaller versions of the original" + "More here later" + "Andy Thomas" + "Andy Thomas" + "1997" + "_Small Tiles..." + 0 + (icon icon-name -1 "") + "RGB*, GRAY*" + 4 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "num-tiles" "Number of tiles to make"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/tile/tile" 1584945099 + (proc-def "plug-in-tile" 1 + "Create an array of copies of the image" + "This function creates a new image with a single layer sized to the specified 'new_width' and 'new_height' parameters. The specified drawable is tiled into this layer. The new layer will have the same type as the specified drawable and the new image will have a corresponding base type." + "Spencer Kimball & Peter Mattis" + "Spencer Kimball & Peter Mattis" + "1996-1997" + "_Tile..." + 1 + (menu-path "/Filters/Map") + (icon icon-name -1 "") + "RGB*, GRAY*, INDEXED*" + 6 2 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "new-width" "New (tiled) image width") + (proc-arg 0 "new-height" "New (tiled) image height") + (proc-arg 0 "new-image" "Create a new image?") + (proc-arg 13 "new-image" "Output image (-1 if new-image == FALSE)") + (proc-arg 14 "new-layer" "Output layer (-1 if new-image == FALSE)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/sphere-designer/sphere-designer" 1584945099 + (proc-def "plug-in-spheredesigner" 1 + "Create an image of a textured sphere" + "This plug-in can be used to create textured and/or bumpmapped spheres, and uses a small lightweight raytracer to perform the task with good quality" + "Vidar Madsen" + "Vidar Madsen" + "1999" + "Sphere _Designer..." + 1 + (menu-path "/Filters/Render") + (icon icon-name -1 "") + "RGB*, GRAY*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/sparkle/sparkle" 1584945099 + (proc-def "plug-in-sparkle" 1 + "Turn bright spots into starry sparkles" + "Uses a percentage based luminoisty threhsold to find candidate pixels for adding some sparkles (spikes). " + "John Beale, & (ported to GIMP v0.54) Michael J. Hammel & ted to GIMP v1.0) & Seth Burgess & Spencer Kimball" + "John Beale" + "Version 1.27, September 2003" + "_Sparkle..." + 1 + (menu-path "/Filters/Light and Shadow/Light") + (icon icon-name -1 "") + "RGB*, GRAY*" + 16 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 3 "lum-threshold" "Luminosity threshold (0.0 - 1.0)") + (proc-arg 3 "flare-inten" "Flare intensity (0.0 - 1.0)") + (proc-arg 0 "spike-len" "Spike length (in pixels)") + (proc-arg 0 "spike-pts" "# of spike points") + (proc-arg 0 "spike-angle" "Spike angle (0-360 degrees, -1: random)") + (proc-arg 3 "density" "Spike density (0.0 - 1.0)") + (proc-arg 3 "transparency" "Transparency (0.0 - 1.0)") + (proc-arg 3 "random-hue" "Random hue (0.0 - 1.0)") + (proc-arg 3 "random-saturation" "Random saturation (0.0 - 1.0)") + (proc-arg 0 "preserve-luminosity" "Preserve luminosity (TRUE/FALSE)") + (proc-arg 0 "inverse" "Inverse (TRUE/FALSE)") + (proc-arg 0 "border" "Add border (TRUE/FALSE)") + (proc-arg 0 "color-type" "Color of sparkles: { NATURAL (0), FOREGROUND (1), BACKGROUND (2) }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/softglow/softglow" 1584945099 + (proc-def "plug-in-softglow" 1 + "Simulate glow by making highlights intense and fuzzy" + "Gives an image a softglow effect by intensifying the highlights in the image. This is done by screening a modified version of the drawable with itself. The modified version is desaturated and then a sigmoidal transfer function is applied to force the distribution of intensities into very small and very large only. This desaturated version is then blurred to give it a fuzzy 'vaseline-on-the-lens' effect. The glow radius parameter controls the sharpness of the glow effect. The brightness parameter controls the degree of intensification applied to image highlights. The sharpness parameter controls how defined or alternatively, diffuse, the glow effect should be." + "Spencer Kimball" + "Bit Specialists, Inc." + "2001" + "_Softglow (legacy)..." + 1 + (menu-path "/Filters/Artistic") + (icon icon-name -1 "") + "RGB*, GRAY*" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 3 "glow-radius" "Glow radius (radius in pixels)") + (proc-arg 3 "brightness" "Glow brightness (0.0 - 1.0)") + (proc-arg 3 "sharpness" "Glow sharpness (0.0 - 1.0)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/smooth-palette/smooth-palette" 1584945099 + (proc-def "plug-in-smooth-palette" 1 + "Derive a smooth color palette from the image" + "help!" + "Scott Draves" + "Scott Draves" + "1997" + "Smoo_th Palette..." + 1 + (menu-path "/Colors/Info") + (icon icon-name -1 "") + "RGB*" + 7 2 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "width" "Width") + (proc-arg 0 "height" "Height") + (proc-arg 0 "ntries" "Search Depth") + (proc-arg 0 "show-image" "Show Image?") + (proc-arg 13 "new-image" "Output image") + (proc-arg 14 "new-layer" "Output layer"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/sharpen/sharpen" 1584945099 + (proc-def "plug-in-sharpen" 1 + "Make image sharper (less powerful than Unsharp Mask)" + "This plug-in selectively performs a convolution filter on an image." + "Michael Sweet " + "Copyright 1997-1998 by Michael Sweet" + "1.4.2 - 3 June 1998" + "_Sharpen..." + 0 + (icon icon-name -1 "") + "RGB*, GRAY*" + 4 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "percent" "Percent sharpening (default = 10)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/selection-to-path/selection-to-path" 1584945099 + (proc-def "plug-in-sel2path" 1 + "Converts a selection to a path" + "Converts a selection to a path" + "Andy Thomas" + "Andy Thomas" + "1999" + "" + 0 + (icon icon-name -1 "") + "RGB*, INDEXED*, GRAY*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (unused)")) + (proc-def "plug-in-sel2path-advanced" 1 + "Converts a selection to a path (with advanced user menu)" + "Converts a selection to a path (with advanced user menu)" + "Andy Thomas" + "Andy Thomas" + "1999" + "" + 0 + (icon icon-name -1 "") + "RGB*, INDEXED*, GRAY*" + 23 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (unused)") + (proc-arg 3 "align-threshold" "align_threshold") + (proc-arg 3 "corner-always-threshold" "corner_always_threshold") + (proc-arg 2 "corner-surround" "corner_surround") + (proc-arg 3 "corner-threshold" "corner_threshold") + (proc-arg 3 "error-threshold" "error_threshold") + (proc-arg 2 "filter-alternative-surround" "filter_alternative_surround") + (proc-arg 3 "filter-epsilon" "filter_epsilon") + (proc-arg 2 "filter-iteration-count" "filter_iteration_count") + (proc-arg 3 "filter-percent" "filter_percent") + (proc-arg 2 "filter-secondary-surround" "filter_secondary_surround") + (proc-arg 2 "filter-surround" "filter_surround") + (proc-arg 2 "keep-knees" "{1-Yes, 0-No}") + (proc-arg 3 "line-reversion-threshold" "line_reversion_threshold") + (proc-arg 3 "line-threshold" "line_threshold") + (proc-arg 3 "reparameterize-improvement" "reparameterize_improvement") + (proc-arg 3 "reparameterize-threshold" "reparameterize_threshold") + (proc-arg 3 "subdivide-search" "subdivide_search") + (proc-arg 2 "subdivide-surround" "subdivide_surround") + (proc-arg 3 "subdivide-threshold" "subdivide_threshold") + (proc-arg 2 "tangent-surround" "tangent_surround"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/script-fu/script-fu" 1584945099 + (proc-def "extension-script-fu" 2 + "A scheme interpreter for scripting GIMP operations" + "More help here later" + "Spencer Kimball & Peter Mattis" + "Spencer Kimball & Peter Mattis" + "1997" + "" + 0 + (icon icon-name -1 "") + "" + 0 0) + (proc-def "plug-in-script-fu-console" 1 + "Interactive console for Script-Fu development" + "Provides an interface which allows interactive scheme development." + "Spencer Kimball & Peter Mattis" + "Spencer Kimball & Peter Mattis" + "1997" + "_Console" + 1 + (menu-path "/Filters/Languages/Script-Fu") + (icon icon-name -1 "") + "" + 1 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }")) + (proc-def "plug-in-script-fu-text-console" 1 + "Provides a text console mode for script-fu development" + "Provides an interface which allows interactive scheme development." + "Spencer Kimball & Peter Mattis" + "Spencer Kimball & Peter Mattis" + "1997" + "" + 0 + (icon icon-name -1 "") + "" + 1 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }")) + (proc-def "plug-in-script-fu-server" 1 + "Server for remote Script-Fu operation" + "Provides a server for remote script-fu operation. NOTE that for security reasons this procedure's API was changed in an incompatible way since GIMP 2.8.12. You now have to pass the IP to listen on as first parameter. Calling this procedure with the old API will fail on purpose." + "Spencer Kimball & Peter Mattis" + "Spencer Kimball & Peter Mattis" + "1997" + "_Start Server..." + 1 + (menu-path "/Filters/Languages/Script-Fu") + (icon icon-name -1 "") + "" + 4 0 + (proc-arg 0 "run-mode" "The run mode { RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "ip" "The ip on which to listen for requests") + (proc-arg 0 "port" "The port on which to listen for requests") + (proc-arg 4 "logfile" "The file to log server activity to")) + (proc-def "plug-in-script-fu-eval" 1 + "Evaluate scheme code" + "Evaluate the code under the scheme interpreter (primarily for batch mode)" + "Manish Singh" + "Manish Singh" + "1998" + "" + 0 + (icon icon-name -1 "") + "" + 2 0 + (proc-arg 0 "run-mode" "The run mode { RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "code" "The code to evaluate")) + (locale-def "gimp20-script-fu")) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/screenshot/screenshot" 1584945099 + (proc-def "plug-in-screenshot" 1 + "Create an image from an area of the screen" + "The plug-in takes screenshots of an interactively selected window or of the desktop, either the whole desktop or an interactively selected region. When called non-interactively, it may grab the root window or use the window-id passed as a parameter. The last four parameters are optional and can be used to specify the corners of the region to be grabbed.On Mac OS X or on gnome-shell, when called non-interactively, the plug-inonly can take screenshots of the entire root window.Grabbing a window or a region is not supportednon-interactively. To grab a region or a particularwindow, you need to use the interactive mode." + "Sven Neumann , Henrik Brix Andersen ,Simone Karin Lehmann" + "1998 - 2008" + "v1.1 (2008/04)" + "_Screenshot..." + 1 + (menu-path "/File/Create/Acquire") + (icon inline-pixbuf 1606 "GdkP\0\0\6F\2\1\0\2\0\0\0X\0\0\0\26\0\0\0\26\213\0\0\0\0\1\242\242\242\5\203\242\242\242\31\221\0\0\0\0\2\27\27\26D\40\40\40\372\203\51\51\51\375\2\32\32\32\362\26\26\25\60\217\0\0\0\0\2\2\2\2\322\307\310\307\377\203\377\377\377\377\2\263\263\262\363\0\0\0\314\217\0\0\0\0\2\6\6\6\334\206\207\205\377\202\252\253\251\377\3\252\252\251\377ghe\376\1\1\1\320\217\0\0\0\0\2\11\11\11\346\56\57\55\345\202GHE\25\3JKH\32\60\61\57\364\5\5\5\333\212\0\0\0\0\17\26\26\25\31\26\26\25\60\26\26\25g\0\0\0\314\53\54\53\331LMK\375EFD\362ffe\347iig\346lmk\346RSQ\362\13\13\13\360\0\0\0\314\2\2\2\321\26\26\25V\203\0\0\0\0\43\26\26\25\31\26\26\25\60\26\26\25n\3\3\3\331\2\2\2\332JJI\355\215\215\215\372\246\246\246\347\267\270\266\362\177\202\176\377BC\77\377TUR\377\134\135Y\377gid\377\133\135X\377\204\206\204\374wxw\276\224\225\224\314LLK\343\26\26\25D\0\0\0\0\26\26\25D\3\3\3\341\17\17\17\373ghg\377\237\240\236\377\273\274\272\377\302\303\300\377\272\273\270\377\200\201\177\377zzz\377tws\377\220\223\217\377\221\225\221\377\224\227\223\377\202\226\232\226\377K\177\202\175\377xyu\377\217\221\215\377\226\227\226\365\0\0\0\371\0\0\0\0\2\2\2\330\257\261\257\377\275\276\273\377\262\263\260\377UWT\377QSP\377suq\377\135\136\133\377\304\304\304\377\303\303\303\377kmi\377MNJ\377WZX\377\133\140\137\377aeb\377gid\377\175\200\173\377SUQ\377FGE\377\200\201\200\377\12\12\12\357\0\0\0\0\4\4\4\345xyv\377\241\242\236\377\210\212\205\377vxt\377\220\222\217\377GIF\377\53\54\51\377\140\140\140\377jji\377UXV\377y\204\210\377\203\215\220\377\176\204\207\377flo\377PW\134\377SWU\377JLI\377\64\65\62\377tut\377\12\12\12\357\0\0\0\0\4\4\4\344opm\377\221\223\217\377\175\177\173\377\215\217\213\377\140b\137\377\50\51\47\377\52\53\51\377\67\70\65\377VXV\377u\176\202\377nsu\377VYZ\377OST\377OQS\377JOP\377\136cd\377\66\71\70\377\41\42\41\377llk\377\12\12\12\357\0\0\0\0\3\3\3\345npl\377\220\221\216\377\202UWS\377\24GIF\377\40\41\37\377\52\53\51\377\71\72\67\377\136ce\377NRT\377UXY\377\50\54\56\377\22\24\25\377\41\44\46\377ILM\377\70\75\77\377RVX\377\47\47\46\377klk\377\12\12\12\357\0\0\0\1\3\3\3\345nol\377\220\221\216\377\202UWS\377\24GIF\377\40\41\37\377\52\53\51\377\70\72\70\377TXY\377\62\70\71\377\23\25\26\377\16\16\16\377\1\1\1\377\2\2\2\377\24\25\25\377\56\63\64\377\62\70\71\377\60\61\61\377aa\140\377\11\11\11\360\0\0\0\3\3\3\3\345nol\377\204\205\202\377\202UWS\377\24GIF\377\40\41\37\377\52\53\51\377\77BA\377\62\70\72\377\34\40\41\377\31\32\32\377\377\377\377\377hhh\377\40\40\40\377\22\22\22\377\56\60\60\377\56\64\66\377\72\76\77\377\140a\140\377\11\11\10\361\0\0\0\7\3\3\3\345mok\377z\173x\377\202UWS\377\24GIF\377\40\41\37\377\52\53\51\377HJI\377\56\64\66\377\25\27\30\377\40\40\40\377hhh\377\232\232\232\377\175\175\175\377\47\47\47\377\71\73\73\377\57\65\67\377\65\71\71\377\140\140\137\377\11\11\10\362\0\0\0\15\3\3\3\345lnk\377rsp\377\202UWS\377\24GIF\377\40\41\37\377\54\55\52\377\76\100\76\377\56\64\66\377\35\37\40\377\1\1\1\377\70\70\70\377\214\214\214\377\213\213\213\377AAA\377JKK\377\57\65\67\377\66\72\73\377WXV\377\6\6\6\364\0\0\0\21\0\0\0\371\201\202\177\377mok\377\202UWS\377iGIF\377MNM\377RRR\372ghg\364\133\140b\377\53\57\60\377\17\17\17\377\42\42\42\377\47\47\47\377HHH\377\263\263\263\377SUU\377W\134\136\377CFF\374\74\74\74\376\20\20\17\317\0\0\0\20\24\24\23\135\4\4\4\353\177\177\176\375\174\175z\373\175\176\174\374hih\376\71\72\71\371\0\0\0\347\0\0\0\351\7\7\7\367\56\64\66\377\62\65\66\377\40\40\40\377\50\50\50\377\72\72\72\377\140ab\377\71\76\77\377\11\13\13\376\0\0\0\353\0\0\0\300\14\14\13H\0\0\0\15\0\0\0\4\23\23\22L\0\0\0\332\0\0\0\341\0\0\0\346\0\0\0\341\14\14\13\173\0\0\0V\0\0\0a\0\0\0l\10\11\11\371\134\136\137\377LOP\377ILL\377LOQ\377QUV\377\16\17\17\377\34\37\40\244\0\0\0\140\0\0\0\64\0\0\0\27\0\0\0\7\0\0\0\1\0\0\0\3\0\0\0\10\0\0\0\21\0\0\0\34\0\0\0\47\0\0\0\60\0\0\0\66\0\0\0\75\0\0\0A\0\0\0F\4\5\5\355\12\13\13\371\17\20\20\376\15\16\16\375\10\10\11\365\7\10\11j\0\0\0G\0\0\0\55\0\0\0\30\0\0\0\13\0\0\0\4\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\4\0\0\0\11\0\0\0\16\0\0\0\23\0\0\0\31\0\0\0\35\0\0\0\41\0\0\0\43\0\0\0\44\0\0\0\45\0\0\0\44\0\0\0\46\0\0\0\45\0\0\0\36\0\0\0\27\0\0\0\20\0\0\0\10\0\0\0\3\0\0\0\1\204\0\0\0\0\5\0\0\0\1\0\0\0\2\0\0\0\4\0\0\0\5\0\0\0\6\202\0\0\0\10\11\0\0\0\11\0\0\0\7\0\0\0\10\0\0\0\5\0\0\0\7\0\0\0\6\0\0\0\5\0\0\0\3\0\0\0\1\202\0\0\0\0") + "" + 7 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 0 "shoot-type" "The Shoot type { SHOOT-WINDOW (0), SHOOT-ROOT (1), SHOOT-REGION (2) }") + (proc-arg 0 "window-id" "Window id for SHOOT-WINDOW") + (proc-arg 0 "x1" "Region left x coord for SHOOT-REGION") + (proc-arg 0 "y1" "Region top y coord for SHOOT-REGION") + (proc-arg 0 "x2" "Region right x coord for SHOOT-REGION") + (proc-arg 0 "y2" "Region bottom y coord for SHOOT-REGION") + (proc-arg 13 "image" "Output image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/sample-colorize/sample-colorize" 1584945099 + (proc-def "plug-in-sample-colorize" 1 + "Colorize image using a sample image as a guide" + "This plug-in colorizes the contents of the specified (gray) layer with the help of a sample (color) layer. It analyzes all colors in the sample layer. The sample colors are sorted by brightness (== intentisty) and amount and stored in a sample colortable (where brightness is the index) The pixels of the destination layer are remapped with the help of the sample colortable. If use_subcolors is TRUE, the remapping process uses all sample colors of the corresponding brightness-intensity and distributes the subcolors according to their amount in the sample (If the sample has 5 green, 3 yellow, and 1 red pixel of the intensity value 105, the destination pixels at intensity value 105 are randomly painted in green, yellow and red in a relation of 5:3:1 If use_subcolors is FALSE only one sample color per intensity is used. (green will be used in this example) The brightness intensity value is transformed at the remapping process according to the levels: out_lo, out_hi, in_lo, in_high and gamma The in_low / in_high levels specify an initial mapping of the intensity. The gamma value determines how intensities are interpolated between the in_lo and in_high levels. A gamma value of 1.0 results in linear interpolation. Higher gamma values results in more high-level intensities Lower gamma values results in more low-level intensities The out_low/out_high levels constrain the resulting intensity index The intensity index is used to pick the corresponding color in the sample colortable. If hold_inten is FALSE the picked color is used 1:1 as resulting remap_color. If hold_inten is TRUE The brightness of the picked color is adjusted back to the origial intensity value (only hue and saturation are taken from the picked sample color) (or to the input level, if orig_inten is set FALSE) Works on both Grayscale and RGB image with/without alpha channel. (the image with the dst_drawable is converted to RGB if necessary) The sample_drawable should be of type RGB or RGBA" + "Wolfgang Hofer" + "hof@hotbot.com" + "02/2000" + "_Sample Colorize..." + 1 + (menu-path "/Colors/Map") + (icon icon-name -1 "") + "RGB*, GRAY*" + 13 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "dst-drawable" "The drawable to be colorized (Type GRAY* or RGB*)") + (proc-arg 16 "sample-drawable" "Sample drawable (should be of Type RGB or RGBA)") + (proc-arg 0 "hold-inten" "hold brightness intensity levels (TRUE, FALSE)") + (proc-arg 0 "orig-inten" "TRUE: hold brightness of original intensity levels. FALSE: Hold Intensity of input levels") + (proc-arg 0 "rnd-subcolors" "TRUE: Use all subcolors of same intensity, FALSE: use only one color per intensity") + (proc-arg 0 "guess-missing" "TRUE: guess samplecolors for the missing intensity values FALSE: use only colors found in the sample") + (proc-arg 0 "in-low" "intensity of lowest input (0 <= in_low <= 254)") + (proc-arg 0 "in-high" "intensity of highest input (1 <= in_high <= 255)") + (proc-arg 3 "gamma" "gamma adjustment factor (0.1 <= gamma <= 10) where 1.0 is linear") + (proc-arg 0 "out-low" "lowest sample color intensity (0 <= out_low <= 254)") + (proc-arg 0 "out-high" "highest sample color intensity (1 <= out_high <= 255)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/qbist/qbist" 1584945099 + (proc-def "plug-in-qbist" 1 + "Generate a huge variety of abstract patterns" + "This Plug-in is based on an article by Jörn Loviscach (appeared in c't 10/95, page 326). It generates modern art pictures from a random genetic formula." + "Jörn Loviscach, Jens Ch. Restemeier" + "Jörn Loviscach, Jens Ch. Restemeier" + "January 2001, 1.12" + "_Qbist..." + 1 + (menu-path "/Filters/Render/Pattern") + (icon icon-name -1 "") + "RGB*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/procedure-browser/procedure-browser" 1584945099 + (proc-def "plug-in-dbbrowser" 1 + "List available procedures in the PDB" + "" + "Thomas Noel" + "Thomas Noel" + "23th june 1997" + "Procedure _Browser" + 1 + (menu-path "/Help/Programming") + (icon icon-name -1 "") + "" + 1 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/print/print" 1584945099 + (proc-def "file-print-gtk" 1 + "Print the image" + "Print the image using the GTK+ Print API." + "Bill Skaggs, Sven Neumann, Stefan Röllin" + "Bill Skaggs " + "2006 - 2008" + "_Print..." + 1 + (menu-path "/File/Send") + (icon icon-name -1 "document-print") + "*" + 2 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }") + (proc-arg 13 "image" "Image to print"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/plugin-browser/plugin-browser" 1584945099 + (proc-def "plug-in-plug-in-details" 1 + "Display information about plug-ins" + "Allows one to browse the plug-in menus system. You can search for plug-in names, sort by name or menu location and you can view a tree representation of the plug-in menus. Can also be of help to find where new plug-ins have installed themselves in the menus." + "Andy Thomas" + "Andy Thomas" + "1999" + "_Plug-in Browser" + 1 + (menu-path "/Help/Programming") + (icon icon-name -1 "gimp-plugin") + "" + 1 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/photocopy/photocopy" 1584945099 + (proc-def "plug-in-photocopy" 1 + "Simulate color distortion produced by a copy machine" + "Propagates dark values in an image based on each pixel's relative darkness to a neighboring average. The idea behind this filter is to give the look of a photocopied version of the image, with toner transferred based on the relative darkness of a particular region. This is achieved by darkening areas of the image which are measured to be darker than a neighborhood average and setting other pixels to white. In this way, sufficiently large shifts in intensity are darkened to black. The rate at which they are darkened to black is determined by the second pct_black parameter. The mask_radius parameter controls the size of the pixel neighborhood over which the average intensity is computed and then compared to each pixel in the neighborhood to decide whether or not to darken it to black. Large values for mask_radius result in very thick black areas bordering the regions of white and much less detail for black areas everywhere including inside regions of color. Small values result in less toner overall and more detail everywhere. Small values for the pct_black make the blend from the white regions to the black border lines smoother and the toner regions themselves thinner and less noticeable; larger values achieve the opposite effect." + "Spencer Kimball" + "Bit Specialists, Inc." + "2001" + "_Photocopy (legacy)..." + 1 + (menu-path "/Filters/Artistic") + (icon icon-name -1 "") + "RGB*, GRAY*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 3 "mask-radius" "Photocopy mask radius (radius of pixel neighborhood)") + (proc-arg 3 "sharpness" "Sharpness (detail level) (0.0 - 1.0)") + (proc-arg 3 "pct-black" "Percentage of darkened pixels to set to black (0.0 - 1.0)") + (proc-arg 3 "pct-white" "Percentage of non-darkened pixels left white (0.0 - 1.0)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/pagecurl/pagecurl" 1584945099 + (proc-def "plug-in-pagecurl" 1 + "Curl up one of the image corners" + "This plug-in creates a pagecurl-effect." + "Federico Mena Quintero and Simon Budig" + "Federico Mena Quintero and Simon Budig" + "July 2004, 1.0" + "_Pagecurl..." + 1 + (menu-path "/Filters/Distorts") + (icon icon-name -1 "") + "RGB*, GRAY*" + 7 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "colors" "FG- and BG-Color (0), Current gradient (1), Current gradient reversed (2)") + (proc-arg 0 "edge" "Edge to curl (1-4, clockwise, starting in the lower right edge)") + (proc-arg 0 "orientation" "Vertical (0), Horizontal (1)") + (proc-arg 0 "shade" "Shade the region under the curl (1) or not (0)") + (proc-arg 14 "curl-layer" "The new layer with the curl."))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/nl-filter/nl-filter" 1584945099 + (proc-def "plug-in-nlfilt" 1 + "Nonlinear swiss army knife filter" + "This is the pnmnlfilt, in gimp's clothing. See the pnmnlfilt manpage for details." + "Graeme W. Gill, gimp 0.99 plug-in by Eric L. Hernes" + "Graeme W. Gill, Eric L. Hernes" + "1997" + "_NL Filter..." + 1 + (menu-path "/Filters/Enhance") + (icon icon-name -1 "") + "RGB,GRAY" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "img" "The Image to Filter") + (proc-arg 16 "drw" "The Drawable") + (proc-arg 3 "alpha" "The amount of the filter to apply") + (proc-arg 3 "radius" "The filter radius") + (proc-arg 0 "filter" "The Filter to Run, 0 - alpha trimmed mean; 1 - optimal estimation (alpha controls noise variance); 2 - edge enhancement"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/metadata-viewer/metadata-viewer" 1584945099 + (proc-def "plug-in-metadata-viewer" 1 + "View metadata (Exif, IPTC, XMP)" + "View metadata information attached to the current image. This can include Exif, IPTC and/or XMP information." + "Hartmut Kuhse, Michael Natterer, Ben Touchette" + "Hartmut Kuhse, Michael Natterer, Ben Touchette" + "2013, 2017" + "_View Metadata" + 1 + (menu-path "/Image/Metadata") + (icon icon-name -1 "") + "*" + 2 0 + (proc-arg 0 "run-mode" "Run mode { RUN-INTERACTIVE (0) }") + (proc-arg 13 "image" "Input image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/metadata-editor/metadata-editor" 1584945099 + (proc-def "plug-in-metadata-editor" 1 + "Edit metadata (IPTC, EXIF, XMP)" + "Edit metadata information attached to the current image. Some or all of this metadata will be saved in the file, depending on the output file format." + "Ben Touchette" + "Ben Touchette" + "2017" + "_Edit Metadata" + 1 + (menu-path "/Image/Metadata") + (icon icon-name -1 "") + "*" + 2 0 + (proc-arg 0 "run-mode" "Run mode { RUN-INTERACTIVE (0) }") + (proc-arg 13 "image" "Input image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/max-rgb/max-rgb" 1584945099 + (proc-def "plug-in-max-rgb" 1 + "Reduce image to pure red, green, and blue" + "There's no help yet." + "Shuji Narazaki (narazaki@InetQ.or.jp)" + "Shuji Narazaki" + "May 2000" + "Maxim_um RGB..." + 0 + (icon icon-name -1 "") + "RGB*" + 4 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (not used)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "max-p" "{ MINIMIZE (0), MAXIMIZE (1) }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/map-object/map-object" 1584945099 + (proc-def "plug-in-map-object" 1 + "Map the image to an object (plane, sphere, box or cylinder)" + "No help yet" + "Tom Bech & Federico Mena Quintero" + "Tom Bech & Federico Mena Quintero" + "Version 1.2.0, July 16 1998" + "Map _Object..." + 1 + (menu-path "/Filters/Map") + (icon icon-name -1 "") + "RGB*" + 49 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "maptype" "Type of mapping (0=plane,1=sphere,2=box,3=cylinder)") + (proc-arg 3 "viewpoint-x" "Position of viewpoint (x,y,z)") + (proc-arg 3 "viewpoint-y" "Position of viewpoint (x,y,z)") + (proc-arg 3 "viewpoint-z" "Position of viewpoint (x,y,z)") + (proc-arg 3 "position-x" "Object position (x,y,z)") + (proc-arg 3 "position-y" "Object position (x,y,z)") + (proc-arg 3 "position-z" "Object position (x,y,z)") + (proc-arg 3 "firstaxis-x" "First axis of object [x,y,z]") + (proc-arg 3 "firstaxis-y" "First axis of object [x,y,z]") + (proc-arg 3 "firstaxis-z" "First axis of object [x,y,z]") + (proc-arg 3 "secondaxis-x" "Second axis of object [x,y,z]") + (proc-arg 3 "secondaxis-y" "Second axis of object [x,y,z]") + (proc-arg 3 "secondaxis-z" "Second axis of object [x,y,z]") + (proc-arg 3 "rotationangle-x" "Rotation about X axis in degrees") + (proc-arg 3 "rotationangle-y" "Rotation about Y axis in degrees") + (proc-arg 3 "rotationangle-z" "Rotation about Z axis in degrees") + (proc-arg 0 "lighttype" "Type of lightsource (0=point,1=directional,2=none)") + (proc-arg 10 "lightcolor" "Lightsource color (r,g,b)") + (proc-arg 3 "lightposition-x" "Lightsource position (x,y,z)") + (proc-arg 3 "lightposition-y" "Lightsource position (x,y,z)") + (proc-arg 3 "lightposition-z" "Lightsource position (x,y,z)") + (proc-arg 3 "lightdirection-x" "Lightsource direction [x,y,z]") + (proc-arg 3 "lightdirection-y" "Lightsource direction [x,y,z]") + (proc-arg 3 "lightdirection-z" "Lightsource direction [x,y,z]") + (proc-arg 3 "ambient-intensity" "Material ambient intensity (0..1)") + (proc-arg 3 "diffuse-intensity" "Material diffuse intensity (0..1)") + (proc-arg 3 "diffuse-reflectivity" "Material diffuse reflectivity (0..1)") + (proc-arg 3 "specular-reflectivity" "Material specular reflectivity (0..1)") + (proc-arg 3 "highlight" "Material highlight (0..->), note: it's exponential") + (proc-arg 0 "antialiasing" "Apply antialiasing (TRUE/FALSE)") + (proc-arg 0 "tiled" "Tile source image (TRUE/FALSE)") + (proc-arg 0 "newimage" "Create a new image (TRUE/FALSE)") + (proc-arg 0 "transparentbackground" "Make background transparent (TRUE/FALSE)") + (proc-arg 3 "radius" "Sphere/cylinder radius (only used when maptype=1 or 3)") + (proc-arg 3 "x-scale" "Box x size (0..->)") + (proc-arg 3 "y-scale" "Box y size (0..->)") + (proc-arg 3 "z-scale" "Box z size (0..->)") + (proc-arg 3 "cylinder-length" "Cylinder length (0..->)") + (proc-arg 16 "box-front-drawable" "Box front face (set these to -1 if not used)") + (proc-arg 16 "box-back-drawable" "Box back face") + (proc-arg 16 "box-top-drawable" "Box top face") + (proc-arg 16 "box-bottom-drawable" "Box bottom face") + (proc-arg 16 "box-left-drawable" "Box left face") + (proc-arg 16 "box-right-drawable" "Box right face") + (proc-arg 16 "cyl-top-drawable" "Cylinder top face (set these to -1 if not used)") + (proc-arg 16 "cyl-bottom-drawable" "Cylinder bottom face"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/mail/mail" 1584945099 + (proc-def "plug-in-mail-image" 1 + "Send the image by email" + "The preferred email composer is used to send emails and must be properly configured." + "Adrian Likins, Reagan Blundell" + "Adrian Likins, Reagan Blundell, Daniel Risacher, Spencer Kimball and Peter Mattis" + "1995-1997" + "Send by E_mail..." + 1 + (menu-path "/File/Send") + (icon icon-name -1 "gtk-edit") + "*" + 9 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "to-address" "The email address to send to") + (proc-arg 4 "from-address" "The email address for the From: field") + (proc-arg 4 "subject" "The subject") + (proc-arg 4 "comment" "The Comment") + (proc-arg 0 "encapsulation" "ignored"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/lighting/lighting" 1584945099 + (proc-def "plug-in-lighting" 1 + "Apply various lighting effects to an image" + "No help yet" + "Tom Bech & Federico Mena Quintero" + "Tom Bech & Federico Mena Quintero" + "Version 0.2.0, March 15 1998" + "_Lighting Effects..." + 1 + (menu-path "/Filters/Light and Shadow/Light") + (icon icon-name -1 "") + "RGB*" + 24 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 16 "bumpdrawable" "Bumpmap drawable (set to 0 if disabled)") + (proc-arg 16 "envdrawable" "Environmentmap drawable (set to 0 if disabled)") + (proc-arg 0 "dobumpmap" "Enable bumpmapping (TRUE/FALSE)") + (proc-arg 0 "doenvmap" "Enable envmapping (TRUE/FALSE)") + (proc-arg 0 "bumpmaptype" "Type of mapping (0=linear,1=log, 2=sinusoidal, 3=spherical)") + (proc-arg 0 "lighttype" "Type of lightsource (0=point,1=directional,3=spot,4=none)") + (proc-arg 10 "lightcolor" "Lightsource color (r,g,b)") + (proc-arg 3 "lightposition-x" "Lightsource position (x,y,z)") + (proc-arg 3 "lightposition-y" "Lightsource position (x,y,z)") + (proc-arg 3 "lightposition-z" "Lightsource position (x,y,z)") + (proc-arg 3 "lightdirection-x" "Lightsource direction [x,y,z]") + (proc-arg 3 "lightdirection-y" "Lightsource direction [x,y,z]") + (proc-arg 3 "lightdirection-z" "Lightsource direction [x,y,z]") + (proc-arg 3 "ambient-intensity" "Material ambient intensity (0..1)") + (proc-arg 3 "diffuse-intensity" "Material diffuse intensity (0..1)") + (proc-arg 3 "diffuse-reflectivity" "Material diffuse reflectivity (0..1)") + (proc-arg 3 "specular-reflectivity" "Material specular reflectivity (0..1)") + (proc-arg 3 "highlight" "Material highlight (0..->), note: it's exponential") + (proc-arg 0 "antialiasing" "Apply antialiasing (TRUE/FALSE)") + (proc-arg 0 "newimage" "Create a new image (TRUE/FALSE)") + (proc-arg 0 "transparentbackground" "Make background transparent (TRUE/FALSE)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/jigsaw/jigsaw" 1584945099 + (proc-def "plug-in-jigsaw" 1 + "Add a jigsaw-puzzle pattern to the image" + "Jigsaw puzzle look" + "Nigel Wetten" + "Nigel Wetten" + "May 2000" + "_Jigsaw..." + 1 + (menu-path "/Filters/Render/Pattern") + (icon icon-name -1 "") + "RGB*" + 8 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "x" "Number of tiles across > 0") + (proc-arg 0 "y" "Number of tiles down > 0") + (proc-arg 0 "style" "The style/shape of the jigsaw puzzle { 0, 1 }") + (proc-arg 0 "blend-lines" "Number of lines for shading bevels >= 0") + (proc-arg 3 "blend-amount" "The power of the light highlights 0 =< 5"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/imagemap/imagemap" 1584945099 + (proc-def "plug-in-imagemap" 1 + "Create a clickable imagemap" + "" + "Maurits Rijk" + "Maurits Rijk" + "1998-2005" + "_Image Map..." + 1 + (menu-path "/Filters/Web") + (icon icon-name -1 "") + "RGB*, GRAY*, INDEXED*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/ifs-compose/ifs-compose" 1584945099 + (proc-def "plug-in-ifscompose" 1 + "Create an Iterated Function System (IFS) fractal" + "Interactively create an Iterated Function System fractal. Use the window on the upper left to adjust the component transformations of the fractal. The operation that is performed is selected by the buttons underneath the window, or from a menu popped up by the right mouse button. The fractal will be rendered with a transparent background if the current image has an alpha channel." + "Owen Taylor" + "Owen Taylor" + "1997" + "_IFS Fractal..." + 1 + (menu-path "/Filters/Render/Fractals") + (icon icon-name -1 "") + "*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/hot/hot" 1584945099 + (proc-def "plug-in-hot" 1 + "Find and fix pixels that may be unsafely bright" + "hot scans an image for pixels that will give unsave values of chrominance or composite signale amplitude when encoded into an NTSC or PAL signal. Three actions can be performed on these ``hot'' pixels. (0) reduce luminance, (1) reduce saturation, or (2) Blacken." + "Eric L. Hernes, Alan Wm Paeth" + "Eric L. Hernes" + "1997" + "_Hot..." + 1 + (menu-path "/Colors/Modify") + (icon icon-name -1 "") + "RGB" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "The Image") + (proc-arg 16 "drawable" "The Drawable") + (proc-arg 0 "mode" "Mode { NTSC (0), PAL (1) }") + (proc-arg 0 "action" "The action to perform") + (proc-arg 0 "new-layer" "Create a new layer { TRUE, FALSE }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/help/help" 1584945099 + (proc-def "extension-gimp-help" 2 + "" + "" + "Sven Neumann , Michael Natterer , Henrik Brix Andersen " + "Sven Neumann, Michael Natterer & Henrik Brix Andersen" + "1999-2008" + "" + 0 + (icon icon-name -1 "") + "" + 4 0 + (proc-arg 0 "num-domain-names" "") + (proc-arg 9 "domain-names" "") + (proc-arg 0 "num-domain-uris" "") + (proc-arg 9 "domain-uris" ""))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/guillotine/guillotine" 1584945099 + (proc-def "plug-in-guillotine" 1 + "Slice the image into subimages using guides" + "This function takes an image and slices it along its guides, creating new images. The original image is not modified." + "Adam D. Moss (adam@foxbox.org)" + "Adam D. Moss (adam@foxbox.org)" + "1998" + "Slice Using G_uides" + 1 + (menu-path "/Image/Crop") + (icon icon-name -1 "") + "RGB*, INDEXED*, GRAY*" + 3 2 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (unused)") + (proc-arg 0 "image-count" "Number of images created") + (proc-arg 5 "image-ids" "Output images"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/grid/grid" 1584945099 + (proc-def "plug-in-grid" 1 + "Draw a grid on the image" + "Draws a grid using the specified colors. The grid origin is the upper left corner." + "Tim Newsome" + "Tim Newsome, Sven Neumann, Tom Rathborne, TC" + "1997 - 2000" + "_Grid (legacy)..." + 1 + (menu-path "/Filters/Render/Pattern") + (icon icon-name -1 "") + "RGB*, GRAY*, INDEXED*" + 18 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "hwidth" "Horizontal Width (>= 0)") + (proc-arg 0 "hspace" "Horizontal Spacing (>= 1)") + (proc-arg 0 "hoffset" "Horizontal Offset (>= 0)") + (proc-arg 10 "hcolor" "Horizontal Colour") + (proc-arg 2 "hopacity" "Horizontal Opacity (0...255)") + (proc-arg 0 "vwidth" "Vertical Width (>= 0)") + (proc-arg 0 "vspace" "Vertical Spacing (>= 1)") + (proc-arg 0 "voffset" "Vertical Offset (>= 0)") + (proc-arg 10 "vcolor" "Vertical Colour") + (proc-arg 2 "vopacity" "Vertical Opacity (0...255)") + (proc-arg 0 "iwidth" "Intersection Width (>= 0)") + (proc-arg 0 "ispace" "Intersection Spacing (>= 0)") + (proc-arg 0 "ioffset" "Intersection Offset (>= 0)") + (proc-arg 10 "icolor" "Intersection Colour") + (proc-arg 2 "iopacity" "Intersection Opacity (0...255)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/gradient-map/gradient-map" 1584945099 + (proc-def "plug-in-gradmap" 1 + "Recolor the image using colors from the active gradient" + "This plug-in maps the contents of the specified drawable with active gradient. It calculates luminosity of each pixel and replaces the pixel by the sample of active gradient at the position proportional to that luminosity. Complete black pixel becomes the leftmost color of the gradient, and complete white becomes the rightmost. Works on both Grayscale and RGB image with/without alpha channel." + "Eiichi Takamori" + "Eiichi Takamori" + "1997" + "_Gradient Map" + 1 + (menu-path "/Colors/Map") + (icon icon-name -1 "") + "RGB*, GRAY*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable")) + (proc-def "plug-in-palettemap" 1 + "Recolor the image using colors from the active palette" + "This plug-in maps the contents of the specified drawable with the active palette. It calculates luminosity of each pixel and replaces the pixel by the palette sample at the corresponding index. A complete black pixel becomes the lowest palette entry, and complete white becomes the highest. Works on both Grayscale and RGB image with/without alpha channel." + "Bill Skaggs" + "Bill Skaggs" + "2004" + "_Palette Map" + 1 + (menu-path "/Colors/Map") + (icon icon-name -1 "") + "RGB*, GRAY*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/gradient-flare/gradient-flare" 1584945099 + (proc-def "plug-in-gflare" 1 + "Produce a lense flare effect using gradients" + "This plug-in produces a lense flare effect using custom gradients. In interactive call, the user can edit his/her own favorite lense flare (GFlare) and render it. Edited gflare is saved automatically to the folder in gflare-path, if it is defined in gimprc. In non-interactive call, the user can only render one of GFlare which has been stored in gflare-path already." + "Eiichi Takamori" + "Eiichi Takamori, and a lot of GIMP people" + "1997" + "_Gradient Flare..." + 1 + (menu-path "/Filters/Light and Shadow/Light") + (icon icon-name -1 "") + "RGB*, GRAY*" + 14 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 4 "gflare-name" "The name of GFlare") + (proc-arg 0 "xcenter" "X coordinate of center of GFlare") + (proc-arg 0 "ycenter" "Y coordinate of center of GFlare") + (proc-arg 3 "radius" "Radius of GFlare (pixel)") + (proc-arg 3 "rotation" "Rotation of GFlare (degree)") + (proc-arg 3 "hue" "Hue rotation of GFlare (degree)") + (proc-arg 3 "vangle" "Vector angle for second flares (degree)") + (proc-arg 3 "vlength" "Vector length for second flares (percentage to Radius)") + (proc-arg 0 "use-asupsample" "Whether it uses or not adaptive supersampling while rendering (boolean)") + (proc-arg 0 "asupsample-max-depth" "Max depth for adaptive supersampling") + (proc-arg 3 "asupsample-threshold" "Threshold for adaptive supersampling"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/goat-exercise/goat-exercise" 1584945099 + (proc-def "plug-in-goat-exercise" 1 + "Exercise a goat" + "takes a goat for a walk" + "Øyvind KolÃ¥s " + "Øyvind KolÃ¥s " + "21march 2012" + "Goat-e_xercise" + 1 + (menu-path "/Filters") + (icon icon-name -1 "") + "RGB*, INDEXED*, GRAY*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/gimpressionist/gimpressionist" 1584945099 + (proc-def "plug-in-gimpressionist" 1 + "Performs various artistic operations" + "Performs various artistic operations on an image" + "Vidar Madsen " + "Vidar Madsen" + "v1.0, November 2003" + "_GIMPressionist..." + 1 + (menu-path "/Filters/Artistic") + (icon icon-name -1 "") + "RGB*, GRAY*" + 4 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 4 "preset" "Preset Name"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/gfig/gfig" 1584945099 + (proc-def "plug-in-gfig" 1 + "Create geometric shapes" + "Draw Vector Graphics and paint them onto your images. Gfig allows you to draw many types of objects including Lines, Circles, Ellipses, Curves, Polygons, pointed stars, Bezier curves, and Spirals. Objects can be painted using Brushes or other toolsor filled using colors or patterns. Gfig objects can also be used to create selections. " + "Andy Thomas" + "Andy Thomas" + "1997" + "_Gfig..." + 1 + (menu-path "/Filters/Render") + (icon icon-name -1 "") + "RGB*, GRAY*" + 4 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "dummy" "dummy"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/fractal-trace/fractal-trace" 1584945099 + (proc-def "plug-in-fractal-trace" 1 + "Transform image with the Mandelbrot Fractal" + "transform image with the Mandelbrot Fractal" + "Hirotsuna Mizuno " + "Copyright (C) 1997 Hirotsuna Mizuno" + "v0.4 test version (Dec. 25 1997)" + "_Fractal Trace (legacy)..." + 1 + (menu-path "/Filters/Map") + (icon icon-name -1 "") + "RGB*, GRAY*" + 9 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 3 "xmin" "xmin fractal image delimiter") + (proc-arg 3 "xmax" "xmax fractal image delimiter") + (proc-arg 3 "ymin" "ymin fractal image delimiter") + (proc-arg 3 "ymax" "ymax fractal image delimiter") + (proc-arg 0 "depth" "Trace depth") + (proc-arg 0 "outside-type" "Outside type { WRAP (0), TRANS (1), BLACK (2), WHITE (3) }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/fractal-explorer/fractal-explorer" 1584945099 + (proc-def "plug-in-fractalexplorer" 1 + "Render fractal art" + "No help yet." + "Daniel Cotting (cotting@multimania.com, www.multimania.com/cotting)" + "Daniel Cotting (cotting@multimania.com, www.multimania.com/cotting)" + "December, 1998" + "_Fractal Explorer..." + 1 + (menu-path "/Filters/Render/Fractals") + (icon icon-name -1 "") + "RGB*, GRAY*" + 22 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 2 "fractaltype" "0: Mandelbrot; 1: Julia; 2: Barnsley 1; 3: Barnsley 2; 4: Barnsley 3; 5: Spider; 6: ManOWar; 7: Lambda; 8: Sierpinski") + (proc-arg 3 "xmin" "xmin fractal image delimiter") + (proc-arg 3 "xmax" "xmax fractal image delimiter") + (proc-arg 3 "ymin" "ymin fractal image delimiter") + (proc-arg 3 "ymax" "ymax fractal image delimiter") + (proc-arg 3 "iter" "Iteration value") + (proc-arg 3 "cx" "cx value ( only Julia)") + (proc-arg 3 "cy" "cy value ( only Julia)") + (proc-arg 2 "colormode" "0: Apply colormap as specified by the parameters below; 1: Apply active gradient to final image") + (proc-arg 3 "redstretch" "Red stretching factor") + (proc-arg 3 "greenstretch" "Green stretching factor") + (proc-arg 3 "bluestretch" "Blue stretching factor") + (proc-arg 2 "redmode" "Red application mode (0:SIN;1:COS;2:NONE)") + (proc-arg 2 "greenmode" "Green application mode (0:SIN;1:COS;2:NONE)") + (proc-arg 2 "bluemode" "Blue application mode (0:SIN;1:COS;2:NONE)") + (proc-arg 2 "redinvert" "Red inversion mode (1: enabled; 0: disabled)") + (proc-arg 2 "greeninvert" "Green inversion mode (1: enabled; 0: disabled)") + (proc-arg 2 "blueinvert" "Green inversion mode (1: enabled; 0: disabled)") + (proc-arg 0 "ncolors" "Number of Colors for mapping (2<=ncolors<=8192)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/flame/flame" 1584945099 + (proc-def "plug-in-flame" 1 + "Create cosmic recursive fractal flames" + "Create cosmic recursive fractal flames" + "Scott Draves" + "Scott Draves" + "1997" + "_Flame..." + 1 + (menu-path "/Filters/Render/Fractals") + (icon icon-name -1 "") + "RGB*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/filter-pack/filter-pack" 1584945099 + (proc-def "plug-in-filter-pack" 1 + "Interactively modify the image colors" + "Interactively modify the image colors." + "Pavel Grinfeld (pavel@ml.com)" + "Pavel Grinfeld (pavel@ml.com)" + "27th March 1997" + "_Filter Pack..." + 0 + (icon icon-name -1 "") + "RGB*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (used for indexed images)") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/film/film" 1584945099 + (proc-def "plug-in-film" 1 + "Combine several images on a film strip" + "Compose several images to a roll film" + "Peter Kirchgessner" + "Peter Kirchgessner (peter@kirchgessner.net)" + "1997" + "_Filmstrip..." + 1 + (menu-path "/Filters/Combine") + (icon icon-name -1 "") + "INDEXED*, GRAY*, RGB*" + 12 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (only used as default image in interactive mode)") + (proc-arg 16 "drawable" "Input drawable (not used)") + (proc-arg 0 "film-height" "Height of film (0: fit to images)") + (proc-arg 10 "film-color" "Color of the film") + (proc-arg 0 "number-start" "Start index for numbering") + (proc-arg 4 "number-font" "Font for drawing numbers") + (proc-arg 10 "number-color" "Color for numbers") + (proc-arg 0 "at-top" "Flag for drawing numbers at top of film") + (proc-arg 0 "at-bottom" "Flag for drawing numbers at bottom of film") + (proc-arg 0 "num-images" "Number of images to be used for film") + (proc-arg 5 "image-ids" "num-images image IDs to be used for film") + (proc-arg 13 "new-image" "Output image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-xwd/file-xwd" 1584945099 + (proc-def "file-xwd-load" 1 + "Loads files in the XWD (X Window Dump) format" + "Loads files in the XWD (X Window Dump) format. XWD image files are produced by the program xwd. Xwd is an X Window System window dumping utility." + "Peter Kirchgessner" + "Peter Kirchgessner" + "1996" + "X window dump" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "xwd") + (magics "4,long,0x00000007") + (mime-types "image/x-xwindowdump")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-xwd-save" 1 + "Exports files in the XWD (X Window Dump) format" + "XWD exporting handles all image types except those with alpha channels." + "Peter Kirchgessner" + "Peter Kirchgessner" + "1996" + "X window dump" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "xwd") + (mime-types "image/x-xwindowdump") + (handles-uri)) + "RGB, GRAY, INDEXED" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-xpm/file-xpm" 1584945099 + (proc-def "file-xpm-load" 1 + "Load files in XPM (X11 Pixmap) format." + "Load files in XPM (X11 Pixmap) format. XPM is a portable image format designed to be included in C source code. XLib provides utility functions to read this format. Newer code should however be using gdk-pixbuf-csource instead. XPM supports colored images, unlike the XBM format which XPM was designed to replace." + "Spencer Kimball & Peter Mattis & Ray Lehtiniemi" + "Spencer Kimball & Peter Mattis" + "1997" + "X PixMap image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "xpm") + (magics "0, string,/*\\040XPM\\040*/") + (mime-types "image/x-xpixmap")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-xpm-save" 1 + "Export files in XPM (X11 Pixmap) format." + "Export files in XPM (X11 Pixmap) format. XPM is a portable image format designed to be included in C source code. XLib provides utility functions to read this format. Newer code should however be using gdk-pixbuf-csource instead. XPM supports colored images, unlike the XBM format which XPM was designed to replace." + "Spencer Kimball & Peter Mattis & Ray Lehtiniemi & Nathan Summers" + "Spencer Kimball & Peter Mattis" + "1997" + "X PixMap image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "xpm") + (mime-types "image/x-xpixmap")) + "RGB*, GRAY*, INDEXED*" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "threshold" "Alpha threshold (0-255)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-xmc/file-xmc" 1584945099 + (proc-def "file-xmc-load" 1 + "Loads files of X11 Mouse Cursor file format" + "This plug-in loads X11 Mouse Cursor (XMC) files." + "Takeshi Matsuyama " + "Takeshi Matsuyama" + "26 May 2009" + "X11 Mouse Cursor" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "xmc") + (magics "0,string,Xcur") + (mime-types "image/x-xcursor") + (thumb-loader "file-xmc-load-thumb")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-xmc-load-thumb" 1 + "Loads only first frame of X11 Mouse Cursor's animation sequence which nominal size is the closest of thumb-size to be used as a thumbnail" + "" + "Takeshi Matsuyama " + "Takeshi Matsuyama" + "26 May 2009" + "" + 0 + (icon icon-name -1 "") + "" + 2 5 + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 0 "thumb-size" "Preferred thumbnail size") + (proc-arg 13 "image" "Thumbnail image") + (proc-arg 0 "image-width" "The width of image") + (proc-arg 0 "image-height" "The height of image") + (proc-arg 0 "image-type" "The color type of image") + (proc-arg 0 "image-num-layers" "The number of layeres")) + (proc-def "file-xmc-save" 1 + "Exports files of X11 cursor file" + "This plug-in exports X11 Mouse Cursor (XMC) files" + "Takeshi Matsuyama " + "Takeshi Matsuyama" + "26 May 2009" + "X11 Mouse Cursor" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "xmc") + (mime-types "image/x-xcursor")) + "RGBA" + 15 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 0 "x-hot" "X-coordinate of hot spot") + (proc-arg 0 "y-hot" "Y-coordinate of hot spot\nUse (-1, -1) to keep original hot spot.") + (proc-arg 0 "crop" "Auto-crop or not") + (proc-arg 0 "size" "Default nominal size") + (proc-arg 0 "size-replace" "Replace existent size or not.") + (proc-arg 0 "delay" "Default delay") + (proc-arg 0 "delay-replace" "Replace existent delay or not.") + (proc-arg 4 "copyright" "Copyright information.") + (proc-arg 4 "license" "License information.") + (proc-arg 4 "other" "Other comment.(taken from \"gimp-comment\" parasite)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-xbm/file-xbm" 1584945099 + (proc-def "file-xbm-load" 1 + "Load a file in X10 or X11 bitmap (XBM) file format" + "Load a file in X10 or X11 bitmap (XBM) file format. XBM is a lossless format for flat black-and-white (two color indexed) images." + "Gordon Matzigkeit" + "Gordon Matzigkeit" + "1998" + "X BitMap image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "xbm,icon,bitmap") + (mime-types "image/x-xbitmap")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-xbm-save" 1 + "Export a file in X10 or X11 bitmap (XBM) file format" + "Export a file in X10 or X11 bitmap (XBM) file format. XBM is a lossless format for flat black-and-white (two color indexed) images." + "Gordon Matzigkeit" + "Gordon Matzigkeit" + "1998" + "X BitMap image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "xbm,icon,bitmap") + (mime-types "image/x-xbitmap") + (handles-uri)) + "INDEXED" + 12 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 4 "comment" "Image description (maximum 72 bytes)") + (proc-arg 0 "x10" "Export in X10 format") + (proc-arg 0 "x-hot" "X coordinate of hotspot") + (proc-arg 0 "y-hot" "Y coordinate of hotspot") + (proc-arg 4 "prefix" "Identifier prefix [determined from filename]") + (proc-arg 0 "write-mask" "(0 = ignore, 1 = save as extra file)") + (proc-arg 4 "mask-extension" "Extension of the mask file"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-wmf/file-wmf" 1584945099 + (proc-def "file-wmf-load" 1 + "Loads files in the WMF file format" + "Loads files in the WMF file format" + "Dom Lachowicz " + "Dom Lachowicz " + "(c) 2003 - Version 0.3.0" + "Microsoft WMF file" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "wmf,apm") + (magics "0,string,\\327\\315\\306\\232,0,string,\\1\\0\\11\\0") + (mime-types "image/x-wmf") + (thumb-loader "file-wmf-load-thumb")) + "" + 6 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 3 "resolution" "Resolution to use for rendering the WMF (defaults to 72 dpi") + (proc-arg 0 "width" "Width (in pixels) to load the WMF in, 0 for original width") + (proc-arg 0 "height" "Height (in pixels) to load the WMF in, 0 for original height") + (proc-arg 13 "image" "Output image")) + (proc-def "file-wmf-load-thumb" 1 + "Loads a small preview from a WMF image" + "" + "Dom Lachowicz " + "Dom Lachowicz " + "(c) 2003 - Version 0.3.0" + "" + 0 + (icon icon-name -1 "") + "" + 2 3 + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 0 "thumb-size" "Preferred thumbnail size") + (proc-arg 13 "image" "Thumbnail image") + (proc-arg 0 "image-width" "Width of full-sized image") + (proc-arg 0 "image-height" "Height of full-sized image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-webp/file-webp" 1584945099 + (proc-def "file-webp-load" 1 + "Loads images in the WebP file format" + "Loads images in the WebP file format" + "Nathan Osman, Ben Touchette" + "(C) 2015-2016 Nathan Osman, (C) 2016 Ben Touchette" + "2015,2016" + "WebP image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "webp") + (magics "8,string,WEBP") + (mime-types "image/webp")) + "" + 3 1 + (proc-arg 0 "run-mode" "Interactive, non-interactive") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-webp-save" 1 + "Saves files in the WebP image format" + "Saves files in the WebP image format" + "Nathan Osman, Ben Touchette" + "(C) 2015-2016 Nathan Osman, (C) 2016 Ben Touchette" + "2015,2016" + "WebP image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "webp") + (mime-types "image/webp")) + "RGB*, GRAY*, INDEXED*" + 18 0 + (proc-arg 0 "run-mode" "Interactive, non-interactive") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image to") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 0 "preset" "preset (Default=0, Picture=1, Photo=2, Drawing=3, Icon=4, Text=5)") + (proc-arg 0 "lossless" "Use lossless encoding (0/1)") + (proc-arg 3 "quality" "Quality of the image (0 <= quality <= 100)") + (proc-arg 3 "alpha-quality" "Quality of the image's alpha channel (0 <= alpha-quality <= 100)") + (proc-arg 0 "animation" "Use layers for animation (0/1)") + (proc-arg 0 "anim-loop" "Loop animation infinitely (0/1)") + (proc-arg 0 "minimize-size" "Minimize animation size (0/1)") + (proc-arg 0 "kf-distance" "Maximum distance between key-frames (>=0)") + (proc-arg 0 "exif" "Toggle saving exif data (0/1)") + (proc-arg 0 "iptc" "Toggle saving iptc data (0/1)") + (proc-arg 0 "xmp" "Toggle saving xmp data (0/1)") + (proc-arg 0 "delay" "Delay to use when timestamps are not available or forced") + (proc-arg 0 "force-delay" "Force delay on all frames"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-tiff/file-tiff" 1584945099 + (proc-def "file-tiff-load" 1 + "loads files of the tiff file format" + "FIXME: write help for tiff_load" + "Spencer Kimball, Peter Mattis & Nick Lamb" + "Nick Lamb " + "1995-1996,1998-2003" + "TIFF image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "tif,tiff") + (magics "0,string,II*\\0,0,string,MM\\0*") + (mime-types "image/tiff") + (handles-uri)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-tiff-save" 1 + "saves files in the tiff file format" + "Saves files in the Tagged Image File Format. The value for the saved comment is taken from the 'gimp-comment' parasite." + "Spencer Kimball & Peter Mattis" + "Spencer Kimball & Peter Mattis" + "1995-1996,2000-2003" + "TIFF image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "tif,tiff") + (mime-types "image/tiff") + (handles-uri)) + "RGB*, GRAY*, INDEXED*" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in") + (proc-arg 0 "compression" "Compression type: { NONE (0), LZW (1), PACKBITS (2), DEFLATE (3), JPEG (4), CCITT G3 Fax (5), CCITT G4 Fax (6) }")) + (proc-def "file-tiff-save2" 1 + "saves files in the tiff file format" + "Saves files in the Tagged Image File Format. The value for the saved comment is taken from the 'gimp-comment' parasite." + "Spencer Kimball & Peter Mattis" + "Spencer Kimball & Peter Mattis" + "1995-1996,2000-2003" + "TIFF image" + 0 + (icon icon-name -1 "") + "RGB*, GRAY*, INDEXED*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in") + (proc-arg 0 "compression" "Compression type: { NONE (0), LZW (1), PACKBITS (2), DEFLATE (3), JPEG (4), CCITT G3 Fax (5), CCITT G4 Fax (6) }") + (proc-arg 0 "save-transp-pixels" "Keep the color data masked by an alpha channel intact (do not store premultiplied components)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-tga/file-tga" 1584945099 + (proc-def "file-tga-load" 1 + "Loads files of Targa file format" + "FIXME: write help for tga_load" + "Raphael FRANCOIS, Gordon Matzigkeit" + "Raphael FRANCOIS, Gordon Matzigkeit" + "1997,2000,2007" + "TarGA image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "tga,vda,icb,vst") + (magics "-18&,string,TRUEVISION-XFILE.,-1,byte,0") + (mime-types "image/x-tga")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-tga-save" 1 + "exports files in the Targa file format" + "FIXME: write help for tga_save" + "Raphael FRANCOIS, Gordon Matzigkeit" + "Raphael FRANCOIS, Gordon Matzigkeit" + "1997,2000" + "TarGA image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "tga") + (mime-types "image/x-tga")) + "RGB*, GRAY*, INDEXED*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "rle" "Use RLE compression") + (proc-arg 0 "origin" "Image origin (0 = top-left, 1 = bottom-left)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-svg/file-svg" 1584945099 + (proc-def "file-svg-load" 1 + "Loads files in the SVG file format" + "Renders SVG files to raster graphics using librsvg." + "Dom Lachowicz, Sven Neumann" + "Dom Lachowicz " + "2.5.0" + "SVG image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "svg") + (magics "0,string," + "2.5.0" + "" + 0 + (icon icon-name -1 "") + "" + 2 3 + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 0 "thumb-size" "Preferred thumbnail size") + (proc-arg 13 "image" "Thumbnail image") + (proc-arg 0 "image-width" "Width of full-sized image") + (proc-arg 0 "image-height" "Height of full-sized image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-sunras/file-sunras" 1584945099 + (proc-def "file-sunras-load" 1 + "load file of the SunRaster file format" + "load file of the SunRaster file format" + "Peter Kirchgessner" + "Peter Kirchgessner" + "1996" + "SUN Rasterfile image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "im1,im8,im24,im32,rs,ras") + (magics "0,long,0x59a66a95") + (mime-types "image/x-sun-raster")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-sunras-save" 1 + "export file in the SunRaster file format" + "SUNRAS exporting handles all image types except those with alpha channels." + "Peter Kirchgessner" + "Peter Kirchgessner" + "1996" + "SUN Rasterfile image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "im1,im8,im24,im32,rs,ras") + (mime-types "image/x-sun-raster")) + "RGB, GRAY, INDEXED" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "rle" "Specify non-zero for rle output, zero for standard output"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-sgi/file-sgi" 1584945099 + (proc-def "file-sgi-load" 1 + "Loads files in SGI image file format" + "This plug-in loads SGI image files." + "Michael Sweet " + "Copyright 1997-1998 by Michael Sweet" + "1.1.1 - 17 May 1998" + "Silicon Graphics IRIS image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "sgi,rgb,rgba,bw,icon") + (magics "0,short,474") + (mime-types "image/x-sgi")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-sgi-save" 1 + "Exports files in SGI image file format" + "This plug-in exports SGI image files." + "Michael Sweet " + "Copyright 1997-1998 by Michael Sweet" + "1.1.1 - 17 May 1998" + "Silicon Graphics IRIS image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "sgi,rgb,rgba,bw,icon") + (mime-types "image/x-sgi")) + "RGB*, GRAY*, INDEXED*" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "compression" "Compression level (0 = none, 1 = RLE, 2 = ARLE)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-raw-placeholder/file-raw-placeholder" 1584945099 + (proc-def "file-raw-placeholder-canon-load" 1 + "Load files in the Canon raw formats via raw-placeholder" + "This plug-in loads files in Canon's raw formats by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Canon" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "cr2,crw") + (magics "0,string,II*\\0\\020\\0\\0\\0CR,0,string,II\\024\\0\\0\\0HEAPCCDR") + (mime-types "image/x-canon-cr2,image/x-canon-crw") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-nikon-load" 1 + "Load files in the Nikon raw formats via raw-placeholder" + "This plug-in loads files in Nikon's raw formats by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Nikon" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "nef,nrw") + (mime-types "image/x-nikon-nef,image/x-nikon-nrw") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-hasselblad-load" 1 + "Load files in the Hasselblad raw formats via raw-placeholder" + "This plug-in loads files in Hasselblad's raw formats by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Hasselblad" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "3fr,fff") + (mime-types "image/x-hasselblad-3fr,image/x-hasselblad-fff") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-sony-load" 1 + "Load files in the Sony raw formats via raw-placeholder" + "This plug-in loads files in Sony's raw formats by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Sony" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "arw,srf,sr2") + (mime-types "image/x-sony-arw,image/x-sony-srf,image/x-sony-sr2") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-bay-load" 1 + "Load files in the BAY raw format via raw-placeholder" + "This plug-in loads files in Casio's raw BAY format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Casio BAY" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "bay") + (mime-types "image/x-casio-bay") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-cine-load" 1 + "Load files in the CINE raw format via raw-placeholder" + "This plug-in loads files in Phantom Software's raw CINE format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Phantom Software CINE" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "cine,cin") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-sinar-load" 1 + "Load files in the Sinar raw formats via raw-placeholder" + "This plug-in loads files in Sinar's raw formats by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Sinar" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "cs1,ia,sti") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-kodak-load" 1 + "Load files in the Kodak raw formats via raw-placeholder" + "This plug-in loads files in Kodak's raw formats by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Kodak" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "dc2,dcr,kdc,k25,kc2") + (mime-types "image/x-kodak-dc2,image/x-kodak-dcr,image/x-kodak-kdc,image/x-kodak-k25,image/x-kodak-kc2") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-dng-load" 1 + "Load files in the DNG raw format via raw-placeholder" + "This plug-in loads files in the Adobe Digital Negative DNG format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Adobe DNG Digital Negative" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "dng") + (mime-types "image/x-adobe-dng") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-erf-load" 1 + "Load files in the ERF raw format via raw-placeholder" + "This plug-in loads files in Epson's raw ERF format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Epson ERF" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "erf") + (mime-types "image/x-epson-erf") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-phaseone-load" 1 + "Load files in the Phase One raw formats via raw-placeholder" + "This plug-in loads files in Phase One's raw formats by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Phase One" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "cap,iiq") + (mime-types "image/x-phaseone-cap,image/x-phaseone-iiq") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-minolta-load" 1 + "Load files in the Minolta raw formats via raw-placeholder" + "This plug-in loads files in Minolta's raw formats by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Minolta" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "mdc,mrw") + (mime-types "image/x-minolta-mdc,image/x-minolta-mrw") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-mef-load" 1 + "Load files in the MEF raw format via raw-placeholder" + "This plug-in loads files in Mamiya's raw MEF format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Mamiya MEF" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "mef") + (mime-types "image/x-mamiya-mef") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-mos-load" 1 + "Load files in the MOS raw format via raw-placeholder" + "This plug-in loads files in Leaf's raw MOS format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Leaf MOS" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "mos") + (mime-types "image/x-leaf-mos") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-orf-load" 1 + "Load files in the ORF raw format via raw-placeholder" + "This plug-in loads files in Olympus' raw ORF format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Olympus ORF" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "orf") + (magics "0,string,IIRO,0,string,MMOR,0,string,IIRS") + (mime-types "image/x-olympus-orf") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-pef-load" 1 + "Load files in the PEF raw format via raw-placeholder" + "This plug-in loads files in Pentax' raw PEF format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Pentax PEF" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "pef,raw") + (mime-types "image/x-pentax-pef,image/x-pentax-raw") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-pxn-load" 1 + "Load files in the PXN raw format via raw-placeholder" + "This plug-in loads files in Logitech's raw PXN format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Logitech PXN" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "pxn") + (mime-types "image/x-pxn") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-qtk-load" 1 + "Load files in the QTK raw format via raw-placeholder" + "This plug-in loads files in Apple's QuickTake QTK raw format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Apple QuickTake QTK" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "qtk") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-raf-load" 1 + "Load files in the RAF raw format via raw-placeholder" + "This plug-in loads files in Fujifilm's raw RAF format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Fujifilm RAF" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "raf") + (magics "0,string,FUJIFILMCCD-RAW") + (mime-types "image/x-fuji-raf") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-panasonic-load" 1 + "Load files in the Panasonic raw formats via raw-placeholder" + "This plug-in loads files in Panasonic's raw formats by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Panasonic" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "raw,rw2") + (magics "0,string,IIU\\0") + (mime-types "image/x-panasonic-raw,image/x-panasonic-rw2") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-rdc-load" 1 + "Load files in the RDC raw format via raw-placeholder" + "This plug-in loads files in Digital Foto Maker's raw RDC format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Digital Foto Maker RDC" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "rdc") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-rwl-load" 1 + "Load files in the RWL raw format via raw-placeholder" + "This plug-in loads files in Leica's raw RWL format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Leica RWL" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "rwl") + (mime-types "image/x-leica-rwl") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-srw-load" 1 + "Load files in the SRW raw format via raw-placeholder" + "This plug-in loads files in Samsung's raw SRW format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Samsung SRW" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "srw") + (mime-types "image/x-samsung-srw") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-x3f-load" 1 + "Load files in the X3F raw format via raw-placeholder" + "This plug-in loads files in Sigma's raw X3F format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Sigma X3F" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "x3f") + (magics "0,string,FOVb") + (mime-types "image/x-sigma-x3f") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-ari-load" 1 + "Load files in the ARI raw format via raw-placeholder" + "This plug-in loads files in Arriflex' raw ARI format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Arriflex ARI" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "ari") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-raw-data/file-raw-data" 1584945099 + (proc-def "file-raw-load" 1 + "Load raw images, specifying image information" + "Load raw images, specifying image information" + "timecop, pg@futureware.at" + "timecop, pg@futureware.at" + "Aug 2004" + "Raw image data" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "data")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-hgt-load" 1 + "Load HGT data as images" + "Load Digital Elevation Model data in HGT format from the Shuttle Radar Topography Mission as images. Though the output image will be RGB, all colors are grayscale by default and the contrast will be quite low on most earth relief. Therefore You will likely want to remap elevation to colors as a second step, for instance with the \"Gradient Map\" plug-in." + "" + "" + "2017-12-09" + "Digital Elevation Model data" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "hgt")) + "" + 4 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 0 "samplespacing" "The sample spacing of the data. Only supported values are 0, 1 and 3 (respectively auto-detect, SRTM-1 and SRTM-3 data)") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-save" 1 + "Dump images to disk in raw format" + "This plug-in dumps images to disk in raw format, using the default settings stored as a parasite." + "timecop, pg@futureware.at" + "timecop, pg@futureware.at" + "Aug 2004" + "Raw image data" + 0 + (icon icon-name -1 "") + "INDEXED, GRAY, RGB, RGBA" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name entered")) + (proc-def "file-raw-save2" 1 + "Dump images to disk in raw format" + "Dump images to disk in raw format" + "Björn Kautler, Bjoern@Kautler.net" + "Björn Kautler, Bjoern@Kautler.net" + "April 2014" + "Raw image data" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "data,raw")) + "INDEXED, GRAY, RGB, RGBA" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 0 "image-type" "The image type { RAW_RGB (0), RAW_PLANAR (3) }") + (proc-arg 0 "palette-type" "The palette type { RAW_PALETTE_RGB (0), RAW_PALETTE_BGR (1) }")) + (proc-def "file-raw-get-defaults" 1 + "Get the current set of defaults used by the raw image data dump plug-in" + "This procedure returns the current set of defaults stored as a parasite for the raw image data dump plug-in. These defaults are used to seed the UI, by the file_raw_save_defaults procedure, and by gimp_file_save when it detects to use RAW." + "Björn Kautler, Bjoern@Kautler.net" + "Björn Kautler, Bjoern@Kautler.net" + "April 2014" + "" + 0 + (icon icon-name -1 "") + "" + 0 2 + (proc-arg 0 "image-type" "The image type { RAW_RGB (0), RAW_PLANAR (3) }") + (proc-arg 0 "palette-type" "The palette type { RAW_PALETTE_RGB (0), RAW_PALETTE_BGR (1) }")) + (proc-def "file-raw-set-defaults" 1 + "Set the current set of defaults used by the raw image dump plug-in" + "This procedure sets the current set of defaults stored as a parasite for the raw image data dump plug-in. These defaults are used to seed the UI, by the file_raw_save_defaults procedure, and by gimp_file_save when it detects to use RAW." + "Björn Kautler, Bjoern@Kautler.net" + "Björn Kautler, Bjoern@Kautler.net" + "April 2014" + "" + 0 + (icon icon-name -1 "") + "" + 2 0 + (proc-arg 0 "image-type" "The image type { RAW_RGB (0), RAW_PLANAR (3) }") + (proc-arg 0 "palette-type" "The palette type { RAW_PALETTE_RGB (0), RAW_PALETTE_BGR (1) }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-psp/file-psp" 1584945099 + (proc-def "file-psp-load" 1 + "loads images from the Paint Shop Pro PSP file format" + "This plug-in loads and exports images in Paint Shop Pro's native PSP format. Vector layers aren't handled. Exporting isn't yet implemented." + "Tor Lillqvist" + "Tor Lillqvist" + "1999" + "Paint Shop Pro image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "psp,tub,pspimage") + (magics "0,string,Paint\\040Shop\\040Pro\\040Image\\040File\n\032") + (mime-types "image/x-psp")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-psd/file-psd" 1584945099 + (proc-def "file-psd-load" 1 + "Loads images from the Photoshop PSD file format" + "This plug-in loads images in Adobe Photoshop (TM) native PSD format." + "John Marshall" + "John Marshall" + "2007" + "Photoshop image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "psd") + (magics "0,string,8BPS") + (mime-types "image/x-psd") + (thumb-loader "file-psd-load-thumb")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-psd-load-merged" 1 + "Loads merged images from the Photoshop PSD file format" + "This plug-in loads the merged image data in Adobe Photoshop (TM) native PSD format." + "Ell" + "Ell" + "2018" + "Photoshop image (merged)" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "psd") + (magics "0,string,8BPS") + (priority 1) + (mime-types "image/x-psd") + (priority 1)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-psd-load-thumb" 1 + "Loads thumbnails from the Photoshop PSD file format" + "This plug-in loads thumbnail images from Adobe Photoshop (TM) native PSD format files." + "John Marshall" + "John Marshall" + "2007" + "" + 0 + (icon icon-name -1 "") + "" + 2 3 + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 0 "thumb-size" "Preferred thumbnail size") + (proc-arg 13 "image" "Thumbnail image") + (proc-arg 0 "image-width" "Width of full-sized image") + (proc-arg 0 "image-height" "Height of full-sized image")) + (proc-def "file-psd-save" 1 + "saves files in the Photoshop(tm) PSD file format" + "This filter saves files of Adobe Photoshop(tm) native PSD format. These files may be of any image type supported by GIMP, with or without layers, layer masks, aux channels and guides." + "Monigotes" + "Monigotes" + "2000" + "Photoshop image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "psd") + (mime-types "image/x-psd")) + "RGB*, GRAY*, INDEXED*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in") + (proc-arg 0 "compression" "Compression type: { NONE (0), LZW (1), PACKBITS (2)") + (proc-arg 0 "fill-order" "Fill Order: { MSB to LSB (0), LSB to MSB (1)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-pnm/file-pnm" 1584945099 + (proc-def "file-pnm-load" 1 + "Loads files in the PNM file format" + "This plug-in loads files in the various Netpbm portable file formats." + "Erik Nygren" + "Erik Nygren" + "1996" + "PNM Image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "pnm,ppm,pgm,pbm,pfm") + (magics "0,string,P1,0,string,P2,0,string,P3,0,string,P4,0,string,P5,0,string,P6,0,string,PF,0,string,Pf") + (mime-types "image/x-portable-anymap") + (handles-uri)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-pnm-save" 1 + "Exports files in the PNM file format" + "PNM exporting handles all image types without transparency." + "Erik Nygren" + "Erik Nygren" + "1996" + "PNM image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "pnm") + (mime-types "image/x-portable-anymap") + (handles-uri)) + "RGB, GRAY, INDEXED" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "raw" "TRUE for raw output, FALSE for ascii output")) + (proc-def "file-pbm-save" 1 + "Exports files in the PBM file format" + "PBM exporting produces mono images without transparency." + "Martin K Collins" + "Erik Nygren" + "2006" + "PBM image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "pbm") + (mime-types "image/x-portable-bitmap") + (handles-uri)) + "RGB, GRAY, INDEXED" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "raw" "TRUE for raw output, FALSE for ascii output")) + (proc-def "file-pgm-save" 1 + "Exports files in the PGM file format" + "PGM exporting produces grayscale images without transparency." + "Erik Nygren" + "Erik Nygren" + "1996" + "PGM image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "pgm") + (mime-types "image/x-portable-graymap") + (handles-uri)) + "RGB, GRAY, INDEXED" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "raw" "TRUE for raw output, FALSE for ascii output")) + (proc-def "file-ppm-save" 1 + "Exports files in the PPM file format" + "PPM exporting handles RGB images without transparency." + "Erik Nygren" + "Erik Nygren" + "1996" + "PPM image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "ppm") + (mime-types "image/x-portable-floatmap") + (handles-uri)) + "RGB, GRAY, INDEXED" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "raw" "TRUE for raw output, FALSE for ascii output")) + (proc-def "file-pfm-save" 1 + "Exports files in the PFM file format" + "PFM exporting handles all images without transparency." + "Mukund Sivaraman" + "Mukund Sivaraman" + "2015" + "PFM image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "pfm") + (handles-uri)) + "RGB, GRAY, INDEXED" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-png/file-png" 1584945099 + (proc-def "file-png-load" 1 + "Loads files in PNG file format" + "This plug-in loads Portable Network Graphics (PNG) files." + "Michael Sweet , Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>" + "Michael Sweet , Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>, Nick Lamb " + "1.3.4 - 03 September 2002" + "PNG image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "png") + (magics "0,string,‰PNG\r\n\032\n") + (mime-types "image/png")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-png-save" 1 + "Exports files in PNG file format" + "This plug-in exports Portable Network Graphics (PNG) files." + "Michael Sweet , Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>" + "Michael Sweet , Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>, Nick Lamb " + "1.3.4 - 03 September 2002" + "PNG image" + 0 + (icon icon-name -1 "") + "RGB*,GRAY*,INDEXED*" + 12 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "interlace" "Use Adam7 interlacing?") + (proc-arg 0 "compression" "Deflate Compression factor (0--9)") + (proc-arg 0 "bkgd" "Write bKGD chunk?") + (proc-arg 0 "gama" "Write gAMA chunk?") + (proc-arg 0 "offs" "Write oFFs chunk?") + (proc-arg 0 "phys" "Write pHYs chunk?") + (proc-arg 0 "time" "Write tIME chunk?")) + (proc-def "file-png-save2" 1 + "Exports files in PNG file format" + "This plug-in exports Portable Network Graphics (PNG) files. This procedure adds 2 extra parameters to file-png-save that control whether image comments are saved and whether transparent pixels are saved or nullified." + "Michael Sweet , Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>" + "Michael Sweet , Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>, Nick Lamb " + "1.3.4 - 03 September 2002" + "PNG image" + 0 + (icon icon-name -1 "") + "RGB*,GRAY*,INDEXED*" + 14 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "interlace" "Use Adam7 interlacing?") + (proc-arg 0 "compression" "Deflate Compression factor (0--9)") + (proc-arg 0 "bkgd" "Write bKGD chunk?") + (proc-arg 0 "gama" "Write gAMA chunk?") + (proc-arg 0 "offs" "Write oFFs chunk?") + (proc-arg 0 "phys" "Write pHYs chunk?") + (proc-arg 0 "time" "Write tIME chunk?") + (proc-arg 0 "comment" "Write comment?") + (proc-arg 0 "svtrans" "Preserve color of transparent pixels?")) + (proc-def "file-png-save-defaults" 1 + "Exports files in PNG file format" + "This plug-in exports Portable Network Graphics (PNG) files, using the default settings stored as a parasite." + "Michael Sweet , Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>" + "Michael Sweet , Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>, Nick Lamb " + "1.3.4 - 03 September 2002" + "PNG image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "png") + (mime-types "image/png")) + "RGB*,GRAY*,INDEXED*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in")) + (proc-def "file-png-get-defaults" 1 + "Get the current set of defaults used by the PNG file export plug-in" + "This procedure returns the current set of defaults stored as a parasite for the PNG export plug-in. These defaults are used to seed the UI, by the file_png_save_defaults procedure, and by gimp_file_save when it detects to use PNG." + "Michael Sweet , Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>" + "Michael Sweet , Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>, Nick Lamb " + "1.3.4 - 03 September 2002" + "" + 0 + (icon icon-name -1 "") + "" + 0 9 + (proc-arg 0 "interlace" "Use Adam7 interlacing?") + (proc-arg 0 "compression" "Deflate Compression factor (0--9)") + (proc-arg 0 "bkgd" "Write bKGD chunk?") + (proc-arg 0 "gama" "Write gAMA chunk?") + (proc-arg 0 "offs" "Write oFFs chunk?") + (proc-arg 0 "phys" "Write pHYs chunk?") + (proc-arg 0 "time" "Write tIME chunk?") + (proc-arg 0 "comment" "Write comment?") + (proc-arg 0 "svtrans" "Preserve color of transparent pixels?")) + (proc-def "file-png-set-defaults" 1 + "Set the current set of defaults used by the PNG file export plug-in" + "This procedure set the current set of defaults stored as a parasite for the PNG export plug-in. These defaults are used to seed the UI, by the file_png_save_defaults procedure, and by gimp_file_save when it detects to use PNG." + "Michael Sweet , Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>" + "Michael Sweet , Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>, Nick Lamb " + "1.3.4 - 03 September 2002" + "" + 0 + (icon icon-name -1 "") + "" + 9 0 + (proc-arg 0 "interlace" "Use Adam7 interlacing?") + (proc-arg 0 "compression" "Deflate Compression factor (0--9)") + (proc-arg 0 "bkgd" "Write bKGD chunk?") + (proc-arg 0 "gama" "Write gAMA chunk?") + (proc-arg 0 "offs" "Write oFFs chunk?") + (proc-arg 0 "phys" "Write pHYs chunk?") + (proc-arg 0 "time" "Write tIME chunk?") + (proc-arg 0 "comment" "Write comment?") + (proc-arg 0 "svtrans" "Preserve color of transparent pixels?"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-pix/file-pix" 1584945099 + (proc-def "file-pix-load" 1 + "loads files of the Alias|Wavefront Pix file format" + "loads files of the Alias|Wavefront Pix file format" + "Michael Taylor" + "Michael Taylor" + "1997" + "Alias Pix image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "pix,matte,mask,alpha,als") + (handles-uri)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-pix-save" 1 + "export file in the Alias|Wavefront pix/matte file format" + "export file in the Alias|Wavefront pix/matte file format" + "Michael Taylor" + "Michael Taylor" + "1997" + "Alias Pix image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "pix,matte,mask,alpha,als") + (handles-uri)) + "RGB*, GRAY*, INDEXED*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-pdf-save/file-pdf-save" 1584945099 + (proc-def "file-pdf-save" 1 + "Save files in PDF format" + "Saves files in Adobe's Portable Document Format. PDF is designed to be easily processed by a variety of different platforms, and is a distant cousin of PostScript." + "Barak Itkin" + "Copyright Barak Itkin" + "August 2009" + "Portable Document Format" + 0 + (icon icon-name -1 "") + "RGB*, GRAY*, INDEXED*" + 8 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in") + (proc-arg 0 "vectorize" "Convert bitmaps to vector graphics where possible. TRUE or FALSE") + (proc-arg 0 "ignore-hidden" "Omit hidden layers and layers with zero opacity. TRUE or FALSE") + (proc-arg 0 "apply-masks" "Apply layer masks before saving. TRUE or FALSE (Keeping them will not change the output)")) + (proc-def "file-pdf-save2" 1 + "Save files in PDF format" + "Saves files in Adobe's Portable Document Format. PDF is designed to be easily processed by a variety of different platforms, and is a distant cousin of PostScript.\nThis procedure adds an extra parameter to file-pdf-save to save layers as pages." + "Barak Itkin, Lionel N., Jehan" + "Copyright Barak Itkin, Lionel N., Jehan" + "August 2009, 2017" + "Portable Document Format" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "pdf") + (mime-types "application/pdf")) + "RGB*, GRAY*, INDEXED*" + 10 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in") + (proc-arg 0 "vectorize" "Convert bitmaps to vector graphics where possible. TRUE or FALSE") + (proc-arg 0 "ignore-hidden" "Omit hidden layers and layers with zero opacity. TRUE or FALSE") + (proc-arg 0 "apply-masks" "Apply layer masks before saving. TRUE or FALSE (Keeping them will not change the output)") + (proc-arg 0 "layers-as-pages" "Layers as pages (bottom layers first). TRUE or FALSE") + (proc-arg 0 "reverse-order" "Reverse the pages order (top layers first). TRUE or FALSE")) + (proc-def "file-pdf-save-multi" 1 + "Save files in PDF format" + "Saves files in Adobe's Portable Document Format. PDF is designed to be easily processed by a variety of different platforms, and is a distant cousin of PostScript." + "Barak Itkin" + "Copyright Barak Itkin" + "August 2009" + "_Create multipage PDF..." + 0 + (icon icon-name -1 "") + "RGB*, GRAY*, INDEXED*" + 8 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 0 "count" "The amount of images entered (This will be the amount of pages). 1 <= count <= MAX_PAGE_COUNT") + (proc-arg 5 "images" "Input image for each page (An image can appear more than once)") + (proc-arg 0 "vectorize" "Convert bitmaps to vector graphics where possible. TRUE or FALSE") + (proc-arg 0 "ignore-hidden" "Omit hidden layers and layers with zero opacity. TRUE or FALSE") + (proc-arg 0 "apply-masks" "Apply layer masks before saving. TRUE or FALSE (Keeping them will not change the output)") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-pdf-load/file-pdf-load" 1584945099 + (proc-def "file-pdf-load" 1 + "Load file in PDF format" + "Loads files in Adobe's Portable Document Format. PDF is designed to be easily processed by a variety of different platforms, and is a distant cousin of PostScript.\nIf the PDF document has multiple pages, only the first page will be loaded. Call file_pdf_load2() to load several pages as layers." + "Nathan Summers" + "Nathan Summers" + "2005" + "Portable Document Format" + 0 + (icon icon-name -1 "") + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-pdf-load2" 1 + "Load file in PDF format" + "Loads files in Adobe's Portable Document Format. PDF is designed to be easily processed by a variety of different platforms, and is a distant cousin of PostScript.\nThis procedure adds extra parameters to file-pdf-load to open encrypted PDF and to allow multiple page loading." + "Nathan Summers, Lionel N." + "Nathan Summers, Lionel N." + "2005, 2017" + "Portable Document Format" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "pdf") + (magics "0, string,%PDF-") + (mime-types "application/pdf") + (thumb-loader "file-pdf-load-thumb")) + "" + 6 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 4 "pdf-password" "The password to decrypt the encrypted PDF file") + (proc-arg 0 "n-pages" "Number of pages to load (0 for all)") + (proc-arg 5 "pages" "The pages to load in the expected order") + (proc-arg 13 "image" "Output image")) + (proc-def "file-pdf-load-thumb" 1 + "Loads a preview from a PDF file." + "Loads a small preview of the first page of the PDF format file. Uses the embedded thumbnail if present." + "Nathan Summers" + "Nathan Summers" + "2005" + "" + 0 + (icon icon-name -1 "") + "" + 2 5 + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 0 "thumb-size" "Preferred thumbnail size") + (proc-arg 13 "image" "Thumbnail image") + (proc-arg 0 "image-width" "Width of full-sized image") + (proc-arg 0 "image-height" "Height of full-sized image") + (proc-arg 0 "image-type" "Image type") + (proc-arg 0 "num-layers" "Number of pages"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-pcx/file-pcx" 1584945099 + (proc-def "file-pcx-load" 1 + "Loads files in Zsoft PCX file format" + "FIXME: write help for pcx_load" + "Francisco Bustamante & Nick Lamb" + "Nick Lamb " + "January 1997" + "ZSoft PCX image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "pcx,pcc") + (magics "0&,byte,10,2&,byte,1,3&,byte,>0,3,byte,<9") + (mime-types "image/x-pcx")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-pcx-save" 1 + "Exports files in ZSoft PCX file format" + "FIXME: write help for pcx_save" + "Francisco Bustamante & Nick Lamb" + "Nick Lamb " + "January 1997" + "ZSoft PCX image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "pcx,pcc") + (mime-types "image/x-pcx")) + "INDEXED, RGB, GRAY" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name entered"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-pat/file-pat" 1584945099 + (proc-def "file-pat-save" 1 + "Exports Gimp pattern file (.PAT)" + "New Gimp patterns can be created by exporting them in the appropriate place with this plug-in." + "Tim Newsome" + "Tim Newsome" + "1997" + "GIMP pattern" + 0 + (icon icon-name -1 "gimp-pattern") + (save-proc + (extensions "pat") + (mime-types "image/x-gimp-pat") + (handles-uri)) + "RGB*, GRAY*, INDEXED*" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "uri" "The URI of the file to export the image in") + (proc-arg 4 "raw-uri" "The URI of the file to export the image in") + (proc-arg 4 "description" "Short description of the pattern"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-mng/file-mng" 1584945099 + (proc-def "file-mng-save" 1 + "Saves images in the MNG file format" + "This plug-in saves images in the Multiple-image Network Graphics (MNG) format which can be used as a replacement for animated GIFs, and more." + "Mukund Sivaraman " + "Mukund Sivaraman " + "November 19, 2002" + "MNG animation" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "mng") + (mime-types "image/x-mng")) + "RGB*,GRAY*,INDEXED*" + 17 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in") + (proc-arg 0 "interlace" "Use interlacing") + (proc-arg 0 "compression" "PNG deflate compression level (0 - 9)") + (proc-arg 3 "quality" "JPEG quality factor (0.00 - 1.00)") + (proc-arg 3 "smoothing" "JPEG smoothing factor (0.00 - 1.00)") + (proc-arg 0 "loop" "(ANIMATED MNG) Loop infinitely") + (proc-arg 0 "default-delay" "(ANIMATED MNG) Default delay between frames in milliseconds") + (proc-arg 0 "default-chunks" "(ANIMATED MNG) Default chunks type (0 = PNG + Delta PNG; 1 = JNG + Delta PNG; 2 = All PNG; 3 = All JNG)") + (proc-arg 0 "default-dispose" "(ANIMATED MNG) Default dispose type (0 = combine; 1 = replace)") + (proc-arg 0 "bkgd" "Write bKGD (background color) chunk") + (proc-arg 0 "gama" "Write gAMA (gamma) chunk") + (proc-arg 0 "phys" "Write pHYs (image resolution) chunk") + (proc-arg 0 "time" "Write tIME (creation time) chunk"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-jpeg/file-jpeg" 1584945099 + (proc-def "file-jpeg-load" 1 + "loads files in the JPEG file format" + "loads files in the JPEG file format" + "Spencer Kimball, Peter Mattis & others" + "Spencer Kimball & Peter Mattis" + "1995-2007" + "JPEG image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "jpg,jpeg,jpe") + (magics "6,string,JFIF,6,string,Exif") + (mime-types "image/jpeg") + (thumb-loader "file-jpeg-load-thumb")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-jpeg-load-thumb" 1 + "Loads a thumbnail from a JPEG image" + "Loads a thumbnail from a JPEG image (only if it exists)" + "Mukund Sivaraman , Sven Neumann " + "Mukund Sivaraman , Sven Neumann " + "November 15, 2004" + "" + 0 + (icon icon-name -1 "") + "" + 2 3 + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 0 "thumb-size" "Preferred thumbnail size") + (proc-arg 13 "image" "Thumbnail image") + (proc-arg 0 "image-width" "Width of full-sized image") + (proc-arg 0 "image-height" "Height of full-sized image")) + (proc-def "file-jpeg-save" 1 + "saves files in the JPEG file format" + "saves files in the lossy, widely supported JPEG format" + "Spencer Kimball, Peter Mattis & others" + "Spencer Kimball & Peter Mattis" + "1995-2007" + "JPEG image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "jpg,jpeg,jpe") + (mime-types "image/jpeg")) + "RGB*, GRAY*" + 14 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in") + (proc-arg 3 "quality" "Quality of saved image (0 <= quality <= 1)") + (proc-arg 3 "smoothing" "Smoothing factor for saved image (0 <= smoothing <= 1)") + (proc-arg 0 "optimize" "Use optimized tables during Huffman coding (0/1)") + (proc-arg 0 "progressive" "Create progressive JPEG images (0/1)") + (proc-arg 4 "comment" "Image comment") + (proc-arg 0 "subsmp" "Sub-sampling type { 0, 1, 2, 3 } 0 == 4:2:0 (chroma quartered), 1 == 4:2:2 Horizontal (chroma halved), 2 == 4:4:4 (best quality), 3 == 4:2:2 Vertical (chroma halved)") + (proc-arg 0 "baseline" "Force creation of a baseline JPEG (non-baseline JPEGs can't be read by all decoders) (0/1)") + (proc-arg 0 "restart" "Interval of restart markers (in MCU rows, 0 = no restart markers)") + (proc-arg 0 "dct" "DCT method to use { INTEGER (0), FIXED (1), FLOAT (2) }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-jp2-load/file-jp2-load" 1584945099 + (proc-def "file-jp2-load" 1 + "Loads JPEG 2000 images." + "The JPEG 2000 image loader." + "Mukund Sivaraman" + "Mukund Sivaraman" + "2009" + "JPEG 2000 image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "jp2") + (magics "3,string,\fjP") + (mime-types "image/jp2")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-j2k-load" 1 + "Loads JPEG 2000 codestream." + "Loads JPEG 2000 codestream. If the color space is set to UNKNOWN (0), we will try to guess, which is only possible for few spaces (such as grayscale). Most such calls will fail. You are rather expected to know the color space of your data." + "Jehan" + "Jehan" + "2009" + "JPEG 2000 codestream" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "j2k,j2c,jpc") + (magics "0,string,ÿOÿQ") + (mime-types "image/x-jp2-codestream")) + "" + 4 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 0 "colorspace" "Color space { UNKNOWN (0), GRAYSCALE (1), RGB (2), CMYK (3), YCbCr (4), xvYCC (5) }") + (proc-arg 13 "image" "Output image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-ico/file-ico" 1584945099 + (proc-def "file-ico-load" 1 + "Loads files of Windows ICO file format" + "Loads files of Windows ICO file format" + "Christian Kreibich " + "Christian Kreibich " + "2002" + "Microsoft Windows icon" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "ico") + (magics "0,string,\\000\\001\\000\\000,0,string,\\000\\002\\000\\000") + (mime-types "image/x-ico") + (thumb-loader "file-ico-load-thumb")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-ico-load-thumb" 1 + "Loads a preview from an Windows ICO file" + "" + "Dom Lachowicz, Sven Neumann" + "Sven Neumann " + "2005" + "" + 0 + (icon icon-name -1 "") + "" + 2 3 + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 0 "thumb-size" "Preferred thumbnail size") + (proc-arg 13 "image" "Thumbnail image") + (proc-arg 0 "image-width" "Width of full-sized image") + (proc-arg 0 "image-height" "Height of full-sized image")) + (proc-def "file-ico-save" 1 + "Saves files in Windows ICO file format" + "Saves files in Windows ICO file format" + "Christian Kreibich " + "Christian Kreibich " + "2002" + "Microsoft Windows icon" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "ico") + (mime-types "image/x-ico")) + "*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name entered"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-html-table/file-html-table" 1584945099 + (proc-def "file-gtm-save" 1 + "GIMP Table Magic" + "Allows you to draw an HTML table in GIMP. See help for more info." + "Daniel Dunbar" + "Daniel Dunbar" + "1998" + "HTML table" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "html,htm") + (mime-types "text/html") + (handles-uri)) + "RGB*, GRAY*, INDEXED*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-heif/file-heif" 1584945099 + (proc-def "file-heif-load" 1 + "Loads HEIF images" + "Load image stored in HEIF format (High Efficiency Image File Format). Typical suffices for HEIF files are .heif, .heic." + "Dirk Farin " + "Dirk Farin " + "2018" + "HEIF/HEIC" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "heif,heic") + (magics "4,string,ftypheic,4,string,ftypheix,4,string,ftyphevc,4,string,ftypheim,4,string,ftypheis,4,string,ftyphevm,4,string,ftyphevs,4,string,ftypmif1,4,string,ftypmsf1") + (mime-types "image/heif") + (handles-uri)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "uri" "The URI of the file to load") + (proc-arg 4 "raw-uri" "The URI of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-heif-save" 1 + "Exports HEIF images" + "Save image in HEIF format (High Efficiency Image File Format)." + "Dirk Farin " + "Dirk Farin " + "2018" + "HEIF/HEIC" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "heic,heif") + (mime-types "image/heif") + (handles-uri)) + "RGB*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "uri" "The URI of the file to export the image to") + (proc-arg 4 "raw-uri" "The UTI of the file to export the image to") + (proc-arg 0 "quality" "Quality factor (range: 0-100. 0 = worst, 100 = best)") + (proc-arg 0 "lossless" "Use lossless compression (0 = lossy, 1 = lossless)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-header/file-header" 1584945099 + (proc-def "file-header-save" 1 + "saves files as C unsigned character array" + "FIXME: write help" + "Spencer Kimball & Peter Mattis" + "Spencer Kimball & Peter Mattis" + "1997" + "C source code header" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "h") + (mime-types "text/x-chdr") + (handles-uri)) + "INDEXED, RGB" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-glob/file-glob" 1584945099 + (proc-def "file-glob" 1 + "Returns a list of matching filenames" + "This can be useful in scripts and other plug-ins (e.g., batch-conversion). See the glob(7) manpage for more info. Note however that this isn't a full-featured glob implementation. It only handles simple patterns like \"/home/foo/bar/*.jpg\"." + "Sven Neumann" + "Sven Neumann" + "2004" + "" + 0 + (icon icon-name -1 "") + "" + 2 2 + (proc-arg 4 "pattern" "The glob pattern (in UTF-8 encoding)") + (proc-arg 0 "encoding" "Encoding of the returned names: { UTF-8 (0), filename encoding (1) }") + (proc-arg 0 "num-files" "The number of returned names") + (proc-arg 9 "files" "The list of matching names"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-gih/file-gih" 1584945099 + (proc-def "file-gih-save" 1 + "exports images in GIMP brush pipe format" + "This plug-in exports an image in the GIMP brush pipe format. For a colored brush pipe, RGBA layers are used, otherwise the layers should be grayscale masks. The image can be multi-layered, and additionally the layers can be divided into a rectangular array of brushes." + "Tor Lillqvist" + "Tor Lillqvist" + "1999" + "GIMP brush (animated)" + 0 + (icon icon-name -1 "gimp-tool-paintbrush") + (save-proc + (extensions "gih") + (mime-types "image/x-gimp-gih") + (handles-uri)) + "RGB*, GRAY*" + 15 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "uri" "The URI of the file to export the brush pipe in") + (proc-arg 4 "raw-uri" "The URI of the file to export the brush pipe in") + (proc-arg 0 "spacing" "Spacing of the brush") + (proc-arg 4 "description" "Short description of the brush pipe") + (proc-arg 0 "cell-width" "Width of the brush cells") + (proc-arg 0 "cell-height" "Width of the brush cells") + (proc-arg 2 "display-cols" "Display column number") + (proc-arg 2 "display-rows" "Display row number") + (proc-arg 0 "dimension" "Dimension of the brush pipe") + (proc-arg 7 "rank" "Ranks of the dimensions") + (proc-arg 0 "dimension" "Dimension (again)") + (proc-arg 9 "sel" "Selection modes"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-gif-save/file-gif-save" 1584945099 + (proc-def "file-gif-save" 1 + "exports files in Compuserve GIF file format" + "Export a file in Compuserve GIF format, with possible animation, transparency, and comment. To export an animation, operate on a multi-layer file. The plug-in will interpret <50% alpha as transparent. When run non-interactively, the value for the comment is taken from the 'gimp-comment' parasite. " + "Spencer Kimball, Peter Mattis, Adam Moss, David Koblas" + "Spencer Kimball, Peter Mattis, Adam Moss, David Koblas" + "1995-1997" + "GIF image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "gif") + (mime-types "image/gif") + (handles-uri)) + "INDEXED*, GRAY*" + 9 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Image to export") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "uri" "The name of the URI to export the image in") + (proc-arg 4 "raw-uri" "The name of the URI to export the image in") + (proc-arg 0 "interlace" "Try to export as interlaced") + (proc-arg 0 "loop" "(animated gif) loop infinitely") + (proc-arg 0 "default-delay" "(animated gif) Default delay between frames in milliseconds") + (proc-arg 0 "default-dispose" "(animated gif) Default disposal type (0=`don't care`, 1=combine, 2=replace)")) + (proc-def "file-gif-save2" 1 + "exports files in Compuserve GIF file format" + "Export a file in Compuserve GIF format, with possible animation, transparency, and comment. To export an animation, operate on a multi-layer file and give the 'as-animation' parameter as TRUE. The plug-in will interpret <50% alpha as transparent. When run non-interactively, the value for the comment is taken from the 'gimp-comment' parasite. " + "Spencer Kimball, Peter Mattis, Adam Moss, David Koblas" + "Spencer Kimball, Peter Mattis, Adam Moss, David Koblas" + "1995-1997" + "GIF image" + 0 + (icon icon-name -1 "") + "INDEXED*, GRAY*" + 12 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Image to export") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "uri" "The name of the URI to export the image in") + (proc-arg 4 "raw-uri" "The name of the URI to export the image in") + (proc-arg 0 "interlace" "Try to export as interlaced") + (proc-arg 0 "loop" "(animated gif) loop infinitely") + (proc-arg 0 "default-delay" "(animated gif) Default delay between frames in milliseconds") + (proc-arg 0 "default-dispose" "(animated gif) Default disposal type (0=`don't care`, 1=combine, 2=replace)") + (proc-arg 0 "as-animation" "Export GIF as animation?") + (proc-arg 0 "force-delay" "(animated gif) Use specified delay for all frames?") + (proc-arg 0 "force-dispose" "(animated gif) Use specified disposal for all frames?"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-gif-load/file-gif-load" 1584945099 + (proc-def "file-gif-load" 1 + "Loads files of Compuserve GIF file format" + "FIXME: write help for gif_load" + "Spencer Kimball, Peter Mattis, Adam Moss, David Koblas" + "Spencer Kimball, Peter Mattis, Adam Moss, David Koblas" + "1995-2006" + "GIF image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "gif") + (magics "0,string,GIF8") + (mime-types "image/gif") + (thumb-loader "file-gif-load-thumb")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-gif-load-thumb" 1 + "Loads only the first frame of a GIF image, to be used as a thumbnail" + "" + "Sven Neumann" + "Sven Neumann" + "2006" + "" + 0 + (icon icon-name -1 "") + "" + 2 3 + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 0 "thumb-size" "Preferred thumbnail size") + (proc-arg 13 "image" "Output image") + (proc-arg 0 "image-width" "Width of full-sized image") + (proc-arg 0 "image-height" "Height of full-sized image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-gegl/file-gegl" 1584945099 + (proc-def "file-load-rgbe" 1 + "Load files in the RGBE file format" + "This procedure loads images in the RGBE format, using gegl:load" + "Simon Budig" + "Simon Budig" + "2012" + "Radiance RGBE" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "hdr") + (magics "0,string,?#") + (mime-types "image/vnd.radiance")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-save-rgbe" 1 + "Saves files in the RGBE file format" + "This procedure exports images in the RGBE format, using gegl:save" + "Simon Budig" + "Simon Budig" + "2012" + "Radiance RGBE" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "hdr") + (mime-types "image/vnd.radiance")) + "*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in")) + (proc-def "file-exr-save" 1 + "Saves files in the OpenEXR file format" + "This procedure saves images in the OpenEXR format, using gegl:save" + "Simon Budig" + "Simon Budig" + "2012" + "OpenEXR image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "exr") + (mime-types "image/x-exr")) + "*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-gbr/file-gbr" 1584945099 + (proc-def "file-gbr-save" 1 + "Exports files in the GIMP brush file format" + "Exports files in the GIMP brush file format" + "Tim Newsome, Jens Lautenbacher, Sven Neumann" + "Tim Newsome, Jens Lautenbacher, Sven Neumann" + "1997-2000" + "GIMP brush" + 0 + (icon icon-name -1 "gimp-tool-paintbrush") + (save-proc + (extensions "gbr") + (mime-types "image/x-gimp-gbr") + (handles-uri)) + "RGB*, GRAY*, INDEXED*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "uri" "The URI of the file to export the image in") + (proc-arg 4 "raw-uri" "The URI of the file to export the image in") + (proc-arg 0 "spacing" "Spacing of the brush") + (proc-arg 4 "description" "Short description of the brush"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-fli/file-fli" 1584945099 + (proc-def "file-fli-load" 1 + "load FLI-movies" + "This is an experimantal plug-in to handle FLI movies" + "Jens Ch. Restemeier" + "Jens Ch. Restemeier" + "1997" + "AutoDesk FLIC animation" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "fli,flc") + (mime-types "image/x-flic")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-fli-save" 1 + "export FLI-movies" + "This is an experimantal plug-in to handle FLI movies" + "Jens Ch. Restemeier" + "Jens Ch. Restemeier" + "1997" + "AutoDesk FLIC animation" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "fli,flc") + (mime-types "image/x-flic")) + "INDEXED,GRAY" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (unused)") + (proc-arg 4 "filename" "The name of the file to export") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 0 "from-frame" "Export beginning from this frame") + (proc-arg 0 "to-frame" "End exporting with this frame")) + (proc-def "file-fli-info" 1 + "Get information about a Fli movie" + "This is a experimantal plug-in to handle FLI movies" + "Jens Ch. Restemeier" + "Jens Ch. Restemeier" + "1997" + "" + 0 + (icon icon-name -1 "") + "" + 1 3 + (proc-arg 4 "filename" "The name of the file to get info") + (proc-arg 0 "width" "Width of one frame") + (proc-arg 0 "height" "Height of one frame") + (proc-arg 0 "frames" "Number of Frames"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-fits/file-fits" 1584945099 + (proc-def "file-fits-load" 1 + "load file of the FITS file format" + "load file of the FITS file format (Flexible Image Transport System)" + "Peter Kirchgessner" + "Peter Kirchgessner (peter@kirchgessner.net)" + "1997" + "Flexible Image Transport System" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "fit,fits") + (magics "0,string,SIMPLE") + (mime-types "image/x-fits")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-fits-save" 1 + "export file in the FITS file format" + "FITS exporting handles all image types except those with alpha channels." + "Peter Kirchgessner" + "Peter Kirchgessner (peter@kirchgessner.net)" + "1997" + "Flexible Image Transport System" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "fit,fits") + (mime-types "image/x-fits")) + "RGB, GRAY, INDEXED" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-faxg3/file-faxg3" 1584945099 + (proc-def "file-faxg3-load" 1 + "loads g3 fax files" + "This plug-in loads Fax G3 Image files." + "Jochen Friedrich" + "Jochen Friedrich, Gert Doering, Spencer Kimball & Peter Mattis" + "0.6" + "G3 fax image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "g3") + (magics "4,string,Research") + (mime-types "image/g3-fax")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-exr/file-exr" 1584945099 + (proc-def "file-exr-load" 1 + "Loads files in the OpenEXR file format" + "This plug-in loads OpenEXR files. " + "Dominik Ernst , Mukund Sivaraman " + "Dominik Ernst , Mukund Sivaraman " + "0.0.0" + "OpenEXR image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "exr") + (magics "0,long,0x762f3101") + (mime-types "image/x-exr")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-dicom/file-dicom" 1584945099 + (proc-def "file-dicom-load" 1 + "loads files of the dicom file format" + "Load a file in the DICOM standard format.The standard is defined at http://medical.nema.org/. The plug-in currently only supports reading images with uncompressed pixel sections." + "Dov Grobgeld" + "Dov Grobgeld " + "2003" + "DICOM image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "dcm,dicom") + (magics "128,string,DICM") + (mime-types "image/x-dcm")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-dicom-save" 1 + "Save file in the DICOM file format" + "Save an image in the medical standard DICOM image formats. The standard is defined at http://medical.nema.org/. The file format is defined in section 10 of the standard. The files are saved uncompressed and the compulsory DICOM tags are filled with default dummy values." + "Dov Grobgeld" + "Dov Grobgeld " + "2003" + "Digital Imaging and Communications in Medicine image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "dcm,dicom") + (mime-types "image/x-dcm")) + "RGB, GRAY" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save") + (proc-arg 4 "raw-filename" "The name of the file to save"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-desktop-link/file-desktop-link" 1584945099 + (proc-def "file-desktop-link-load" 1 + "Follows a link to an image in a .desktop file" + "Opens a .desktop file and if it is a link, it asks GIMP to open the file the link points to." + "Sven Neumann" + "Sven Neumann" + "2006" + "Desktop Link" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "desktop")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-dds/file-dds" 1584945099 + (proc-def "file-dds-load" 1 + "Loads files in DDS image format" + "Loads files in DDS image format" + "Shawn Kirst" + "Shawn Kirst" + "2008" + "DDS image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "dds") + (magics "0,string,DDS") + (mime-types "image/dds")) + "" + 5 1 + (proc-arg 0 "run-mode" "Interactive, non-interactive") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 0 "load-mipmaps" "Load mipmaps if present") + (proc-arg 0 "decode-images" "Decode YCoCg/AExp images when detected") + (proc-arg 13 "image" "Output image")) + (proc-def "file-dds-save" 1 + "Saves files in DDS image format" + "Saves files in DDS image format" + "Shawn Kirst" + "Shawn Kirst" + "2008" + "DDS image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "dds") + (mime-types "image/dds")) + "INDEXED, GRAY, RGB" + 18 0 + (proc-arg 0 "run-mode" "Interactive, non-interactive") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image as") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 0 "compression-format" "Compression format (0 = None, 1 = BC1/DXT1, 2 = BC2/DXT3, 3 = BC3/DXT5, 4 = BC3n/DXT5nm, 5 = BC4/ATI1N, 6 = BC5/ATI2N, 7 = RXGB (DXT5), 8 = Alpha Exponent (DXT5), 9 = YCoCg (DXT5), 10 = YCoCg scaled (DXT5))") + (proc-arg 0 "mipmaps" "How to handle mipmaps (0 = No mipmaps, 1 = Generate mipmaps, 2 = Use existing mipmaps (layers)") + (proc-arg 0 "savetype" "How to save the image (0 = selected layer, 1 = cube map, 2 = volume map, 3 = texture array") + (proc-arg 0 "format" "Custom pixel format (0 = default, 1 = R5G6B5, 2 = RGBA4, 3 = RGB5A1, 4 = RGB10A2)") + (proc-arg 0 "transparent-index" "Index of transparent color or -1 to disable (for indexed images only).") + (proc-arg 0 "mipmap-filter" "Filtering to use when generating mipmaps (0 = default, 1 = nearest, 2 = box, 3 = triangle, 4 = quadratic, 5 = bspline, 6 = mitchell, 7 = lanczos, 8 = kaiser)") + (proc-arg 0 "mipmap-wrap" "Wrap mode to use when generating mipmaps (0 = default, 1 = mirror, 2 = repeat, 3 = clamp)") + (proc-arg 0 "gamma-correct" "Use gamma correct mipmap filtering") + (proc-arg 0 "srgb" "Use sRGB colorspace for gamma correction") + (proc-arg 3 "gamma" "Gamma value to use for gamma correction (i.e. 2.2)") + (proc-arg 0 "perceptual-metric" "Use a perceptual error metric during compression") + (proc-arg 0 "preserve-alpha-coverage" "Preserve alpha test converage for alpha channel maps") + (proc-arg 3 "alpha-test-threshold" "Alpha test threshold value for which alpha test converage should be preserved"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-csource/file-csource" 1584945099 + (proc-def "file-csource-save" 1 + "Dump image data in RGB(A) format for C source" + "CSource cannot be run non-interactively." + "Tim Janik" + "Tim Janik" + "1999" + "C source code" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "c") + (mime-types "text/x-csrc") + (handles-uri)) + "*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-compressor/file-compressor" 1584945099 + (proc-def "file-gz-load" 1 + "loads files compressed with gzip" + "This procedure loads files in the gzip compressed format." + "Daniel Risacher" + "Daniel Risacher, Spencer Kimball and Peter Mattis" + "1995-1997" + "gzip archive" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "xcf.gz,xcfgz") + (magics "0,string,\037‹") + (mime-types "application/x-gzip")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-gz-save" 1 + "saves files compressed with gzip" + "This procedure saves files in the gzip compressed format." + "Daniel Risacher" + "Daniel Risacher, Spencer Kimball and Peter Mattis" + "1995-1997" + "gzip archive" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "xcf.gz,xcfgz") + (mime-types "application/x-gzip")) + "RGB*, GRAY*, INDEXED*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name entered")) + (proc-def "file-bz2-load" 1 + "loads files compressed with bzip2" + "This procedure loads files in the bzip2 compressed format." + "Daniel Risacher" + "Daniel Risacher, Spencer Kimball and Peter Mattis" + "1995-1997" + "bzip archive" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "xcf.bz2,xcfbz2") + (magics "0,string,BZh") + (mime-types "application/x-bzip")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-bz2-save" 1 + "saves files compressed with bzip2" + "This procedure saves files in the bzip2 compressed format." + "Daniel Risacher" + "Daniel Risacher, Spencer Kimball and Peter Mattis" + "1995-1997" + "bzip archive" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "xcf.bz2,xcfbz2") + (mime-types "application/x-bzip")) + "RGB*, GRAY*, INDEXED*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name entered")) + (proc-def "file-xz-load" 1 + "loads files compressed with xz" + "This procedure loads files in the xz compressed format." + "Daniel Risacher" + "Daniel Risacher, Spencer Kimball and Peter Mattis" + "1995-1997" + "xz archive" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "xcf.xz,xcfxz") + (magics "0,string,ý7zXZ") + (mime-types "application/x-xz")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-xz-save" 1 + "saves files compressed with xz" + "This procedure saves files in the xz compressed format." + "Daniel Risacher" + "Daniel Risacher, Spencer Kimball and Peter Mattis" + "1995-1997" + "xz archive" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "xcf.xz,xcfxz") + (mime-types "application/x-xz")) + "RGB*, GRAY*, INDEXED*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name entered"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-cel/file-cel" 1584945099 + (proc-def "file-cel-load" 1 + "Loads files in KISS CEL file format" + "This plug-in loads individual KISS cell files." + "Nick Lamb" + "Nick Lamb " + "May 1998" + "KISS CEL" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "cel") + (magics "0,string,KiSS\\040")) + "" + 4 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "Filename to load image from") + (proc-arg 4 "raw-filename" "Name entered") + (proc-arg 4 "palette-filename" "Filename to load palette from") + (proc-arg 13 "image" "Output image")) + (proc-def "file-cel-save" 1 + "Exports files in KISS CEL file format" + "This plug-in exports individual KISS cell files." + "Nick Lamb" + "Nick Lamb " + "May 1998" + "KISS CEL" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "cel") + (handles-uri)) + "RGB*, INDEXED*" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "Filename to export image to") + (proc-arg 4 "raw-filename" "Name entered") + (proc-arg 4 "palette-filename" "Filename to save palette to"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-bmp/file-bmp" 1584945099 + (proc-def "file-bmp-load" 1 + "Loads files of Windows BMP file format" + "Loads files of Windows BMP file format" + "Alexander Schulz" + "Alexander Schulz" + "1997" + "Windows BMP image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "bmp") + (magics "0,string,BM") + (mime-types "image/bmp")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-bmp-save" 1 + "Saves files in Windows BMP file format" + "Saves files in Windows BMP file format" + "Alexander Schulz" + "Alexander Schulz" + "1997" + "Windows BMP image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "bmp") + (mime-types "image/bmp")) + "INDEXED, GRAY, RGB*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name entered"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/emboss/emboss" 1584945099 + (proc-def "plug-in-emboss" 1 + "Simulate an image created by embossing" + "Emboss or Bumpmap the given drawable, specifying the angle and elevation for the light source." + "Eric L. Hernes, John Schlag" + "Eric L. Hernes" + "1997" + "_Emboss (legacy)..." + 1 + (menu-path "/Filters/Distorts") + (icon icon-name -1 "") + "RGB*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "The Image") + (proc-arg 16 "drawable" "The Drawable") + (proc-arg 3 "azimuth" "The Light Angle (degrees)") + (proc-arg 3 "elevation" "The Elevation Angle (degrees)") + (proc-arg 0 "depth" "The Filter Width") + (proc-arg 0 "emboss" "Emboss or Bumpmap"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/edge-dog/edge-dog" 1584945099 + (proc-def "plug-in-dog" 1 + "Edge detection with control of edge thickness" + "Applies two Gaussian blurs to the drawable, and subtracts the results. This is robust and widely used method for detecting edges." + "Spencer Kimball, Peter Mattis, Sven Neumann, William Skaggs" + "Spencer Kimball, Peter Mattis, Sven Neumann, William Skaggs" + "1995-2004" + "_Difference of Gaussians (legacy)..." + 1 + (menu-path "/Filters/Edge-Detect") + (icon icon-name -1 "") + "RGB*, GRAY*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 3 "inner" "Radius of inner gaussian blur (in pixels, > 0.0)") + (proc-arg 3 "outer" "Radius of outer gaussian blur (in pixels, > 0.0)") + (proc-arg 0 "normalize" "Normalize { TRUE, FALSE }") + (proc-arg 0 "invert" "Invert { TRUE, FALSE }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/destripe/destripe" 1584945099 + (proc-def "plug-in-destripe" 1 + "Remove vertical stripe artifacts from the image" + "This plug-in tries to remove vertical stripes from an image." + "Marc Lehmann " + "Marc Lehmann " + "0.2" + "Des_tripe..." + 1 + (menu-path "/Filters/Enhance") + (icon icon-name -1 "") + "RGB*, GRAY*" + 4 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "avg-width" "Averaging filter width (default = 36)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/despeckle/despeckle" 1584945099 + (proc-def "plug-in-despeckle" 1 + "Remove speckle noise from the image" + "This plug-in selectively performs a median or adaptive box filter on an image." + "Michael Sweet " + "Copyright 1997-1998 by Michael Sweet" + "May 2010" + "Des_peckle..." + 1 + (menu-path "/Filters/Enhance") + (icon icon-name -1 "") + "RGB*, GRAY*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "radius" "Filter box radius (default = 3)") + (proc-arg 0 "type" "Filter type { MEDIAN (0), ADAPTIVE (1), RECURSIVE-MEDIAN (2), RECURSIVE-ADAPTIVE (3) }") + (proc-arg 0 "black" "Black level (-1 to 255)") + (proc-arg 0 "white" "White level (0 to 256)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/depth-merge/depth-merge" 1584945099 + (proc-def "plug-in-depth-merge" 1 + "Combine two images using depth maps (z-buffers)" + "Taking as input two full-color, full-alpha images and two corresponding grayscale depth maps, this plug-in combines the images based on which is closer (has a lower depth map value) at each point." + "Sean Cier" + "Sean Cier" + "August 1998" + "_Depth Merge..." + 1 + (menu-path "/Filters/Combine") + (icon icon-name -1 "") + "RGB*, GRAY*" + 11 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "result" "Result") + (proc-arg 16 "source1" "Source 1") + (proc-arg 16 "source2" "Source 2") + (proc-arg 16 "depthMap1" "Depth map 1") + (proc-arg 16 "depthMap2" "Depth map 2") + (proc-arg 3 "overlap" "Overlap") + (proc-arg 3 "offset" "Depth relative offset") + (proc-arg 3 "scale1" "Depth relative scale 1") + (proc-arg 3 "scale2" "Depth relative scale 2"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/decompose/decompose" 1584945099 + (proc-def "plug-in-decompose" 1 + "Decompose an image into separate colorspace components" + "This function creates new gray images with different channel information in each of them" + "Peter Kirchgessner" + "Peter Kirchgessner" + "1997" + "_Decompose..." + 0 + (icon icon-name -1 "") + "RGB*" + 5 4 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 4 "decompose-type" "What to decompose: \"RGB\", \"RGBA\", \"Red\", \"Green\", \"Blue\", \"Alpha\", \"HSV\", \"Hue\", \"Saturation\", \"Value\", \"HSL\", \"Hue (HSL)\", \"Saturation (HSL)\", \"Lightness\", \"CMY\", \"Cyan\", \"Magenta\", \"Yellow\", \"CMYK\", \"Cyan_K\", \"Magenta_K\", \"Yellow_K\", \"LAB\", \"LCH\", \"YCbCr_ITU_R470\", \"YCbCr_ITU_R470_256\", \"YCbCr_ITU_R709\", \"YCbCr_ITU_R709_256\"") + (proc-arg 0 "layers-mode" "Create channels as layers in a single image") + (proc-arg 13 "new-image" "Output gray image") + (proc-arg 13 "new-image" "Output gray image (N/A for single channel extract)") + (proc-arg 13 "new-image" "Output gray image (N/A for single channel extract)") + (proc-arg 13 "new-image" "Output gray image (N/A for single channel extract)")) + (proc-def "plug-in-decompose-registered" 1 + "Decompose an image into separate colorspace components" + "This function creates new gray images with different channel information in each of them. Pixels in the foreground color will appear black in all output images. This can be used for things like crop marks that have to show up on all channels." + "Peter Kirchgessner" + "Peter Kirchgessner, Clarence Risher" + "1997" + "_Decompose..." + 1 + (menu-path "/Colors/Components") + (icon icon-name -1 "") + "RGB*" + 5 4 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 4 "decompose-type" "What to decompose: \"RGB\", \"RGBA\", \"Red\", \"Green\", \"Blue\", \"Alpha\", \"HSV\", \"Hue\", \"Saturation\", \"Value\", \"HSL\", \"Hue (HSL)\", \"Saturation (HSL)\", \"Lightness\", \"CMY\", \"Cyan\", \"Magenta\", \"Yellow\", \"CMYK\", \"Cyan_K\", \"Magenta_K\", \"Yellow_K\", \"LAB\", \"LCH\", \"YCbCr_ITU_R470\", \"YCbCr_ITU_R470_256\", \"YCbCr_ITU_R709\", \"YCbCr_ITU_R709_256\"") + (proc-arg 0 "layers-mode" "Create channels as layers in a single image") + (proc-arg 13 "new-image" "Output gray image") + (proc-arg 13 "new-image" "Output gray image (N/A for single channel extract)") + (proc-arg 13 "new-image" "Output gray image (N/A for single channel extract)") + (proc-arg 13 "new-image" "Output gray image (N/A for single channel extract)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/curve-bend/curve-bend" 1584945099 + (proc-def "plug-in-curve-bend" 1 + "Bend the image using two control curves" + "This plug-in does bend the active layer If there is a current selection it is copied to floating selection and the curve_bend distortion is done on the floating selection. If work_on_copy parameter is TRUE, the curve_bend distortion is done on a copy of the active layer (or floating selection). The upper and lower edges are bent in shape of 2 spline curves. both (upper and lower) curves are determined by upto 17 points or by 256 Y-Values if curve_type == 1 (freehand mode) If rotation is not 0, the layer is rotated before and rotated back after the bend operation. This enables bending in other directions than vertical. bending usually changes the size of the handled layer. this plug-in sets the offsets of the handled layer to keep its center at the same position" + "Wolfgang Hofer (hof@hotbot.com)" + "Wolfgang Hofer" + "v1.3.18 (2003/08/26)" + "_Curve Bend..." + 1 + (menu-path "/Filters/Distorts") + (icon icon-name -1 "") + "RGB*, GRAY*" + 20 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (must be a layer without layermask)") + (proc-arg 3 "rotation" "Direction {angle 0 to 360 degree } of the bend effect") + (proc-arg 0 "smoothing" "Smoothing { TRUE, FALSE }") + (proc-arg 0 "antialias" "Antialias { TRUE, FALSE }") + (proc-arg 0 "work-on-copy" "{ TRUE, FALSE } TRUE: copy the drawable and bend the copy") + (proc-arg 0 "curve-type" " { 0, 1 } 0 == smooth (use 17 points), 1 == freehand (use 256 val_y) ") + (proc-arg 0 "argc-upper-point-x" "{2 <= argc <= 17} ") + (proc-arg 8 "upper-point-x" "array of 17 x point_koords { 0.0 <= x <= 1.0 or -1 for unused point }") + (proc-arg 0 "argc-upper-point-y" "{2 <= argc <= 17} ") + (proc-arg 8 "upper-point-y" "array of 17 y point_koords { 0.0 <= y <= 1.0 or -1 for unused point }") + (proc-arg 0 "argc-lower-point-x" "{2 <= argc <= 17} ") + (proc-arg 8 "lower-point-x" "array of 17 x point_koords { 0.0 <= x <= 1.0 or -1 for unused point }") + (proc-arg 0 "argc-lower-point-y" "{2 <= argc <= 17} ") + (proc-arg 8 "lower-point-y" "array of 17 y point_koords { 0.0 <= y <= 1.0 or -1 for unused point }") + (proc-arg 0 "argc-upper-val-y" "{ 256 } ") + (proc-arg 7 "upper-val-y" "array of 256 y freehand koord { 0 <= y <= 255 }") + (proc-arg 0 "argc-lower-val-y" "{ 256 } ") + (proc-arg 7 "lower-val-y" "array of 256 y freehand koord { 0 <= y <= 255 }") + (proc-arg 14 "bent-layer" "the handled layer")) + (proc-def "plug_in_curve_bend_Iterator" 1 + "This procedure calculates the modified values for one iterationstep for the call of plug_in_curve_bend" + "" + "Wolfgang Hofer (hof@hotbot.com)" + "Wolfgang Hofer" + "v1.3.18 (2003/08/26)" + "" + 0 + (icon icon-name -1 "") + "" + 4 0 + (proc-arg 0 "run-mode" "The run mode { RUN-NONINTERACTIVE (1) }") + (proc-arg 0 "total-steps" "total number of steps (# of layers-1 to apply the related plug-in)") + (proc-arg 3 "current-step" "current (for linear iterations this is the layerstack position, otherwise some value in between)") + (proc-arg 0 "len-struct" "length of stored data structure with id is equal to the plug_in proc_name"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/crop-zealous/crop-zealous" 1584945099 + (proc-def "plug-in-zealouscrop" 1 + "Autocrop unused space from edges and middle" + "" + "Adam D. Moss" + "Adam D. Moss" + "1997" + "_Zealous Crop" + 1 + (menu-path "/Image/Crop") + (icon icon-name -1 "") + "RGB*, GRAY*, INDEXED*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/contrast-retinex/contrast-retinex" 1584945099 + (proc-def "plug-in-retinex" 1 + "Enhance contrast using the Retinex method" + "The Retinex Image Enhancement Algorithm is an automatic image enhancement method that enhances a digital image in terms of dynamic range compression, color independence from the spectral distribution of the scene illuminant, and color/lightness rendition." + "Fabien Pelisson" + "Fabien Pelisson" + "2003" + "Retine_x..." + 1 + (menu-path "/Colors/Tone Mapping") + (icon icon-name -1 "") + "RGB*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "scale" "Biggest scale value") + (proc-arg 0 "nscales" "Number of scales") + (proc-arg 0 "scales-mode" "Retinex distribution through scales") + (proc-arg 3 "cvar" "Variance value"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/compose/compose" 1584945099 + (proc-def "plug-in-compose" 1 + "Create an image using multiple gray images as color channels" + "This function creates a new image from multiple gray images" + "Peter Kirchgessner" + "Peter Kirchgessner (peter@kirchgessner.net)" + "1997" + "C_ompose..." + 1 + (menu-path "/Colors/Components") + (icon icon-name -1 "") + "GRAY*" + 7 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image1" "First input image") + (proc-arg 16 "drawable" "Input drawable (not used)") + (proc-arg 13 "image2" "Second input image") + (proc-arg 13 "image3" "Third input image") + (proc-arg 13 "image4" "Fourth input image") + (proc-arg 4 "compose-type" "What to compose: \"RGB\", \"RGBA\", \"HSV\", \"HSL\", \"CMY\", \"CMYK\", \"LAB\", \"LCH\", \"YCbCr_ITU_R470\", \"YCbCr_ITU_R709\", \"YCbCr_ITU_R470_256\", \"YCbCr_ITU_R709_256\"") + (proc-arg 13 "new-image" "Output image")) + (proc-def "plug-in-drawable-compose" 1 + "Compose an image from multiple drawables of gray images" + "This function creates a new image from multiple drawables of gray images" + "Peter Kirchgessner" + "Peter Kirchgessner (peter@kirchgessner.net)" + "1998" + "" + 0 + (icon icon-name -1 "") + "GRAY*" + 7 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image1" "First input image (not used)") + (proc-arg 16 "drawable1" "First input drawable") + (proc-arg 16 "drawable2" "Second input drawable") + (proc-arg 16 "drawable3" "Third input drawable") + (proc-arg 16 "drawable4" "Fourth input drawable") + (proc-arg 4 "compose-type" "What to compose: \"RGB\", \"RGBA\", \"HSV\", \"HSL\", \"CMY\", \"CMYK\", \"LAB\", \"LCH\", \"YCbCr_ITU_R470\", \"YCbCr_ITU_R709\", \"YCbCr_ITU_R470_256\", \"YCbCr_ITU_R709_256\"") + (proc-arg 13 "new-image" "Output image")) + (proc-def "plug-in-recompose" 1 + "Recompose an image that was previously decomposed" + "This function recombines the grayscale layers produced by Decompose into a single RGB or RGBA layer, and replaces the originally decomposed layer with the result." + "Bill Skaggs" + "Bill Skaggs" + "2004" + "R_ecompose" + 1 + (menu-path "/Colors/Components") + (icon icon-name -1 "") + "GRAY*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Image to recompose from") + (proc-arg 16 "drawable" "Not used"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/colormap-remap/colormap-remap" 1584945099 + (proc-def "plug-in-colormap-remap" 1 + "Rearrange the colormap" + "This procedure takes an indexed image and lets you alter the positions of colors in the colormap without visually changing the image." + "Mukund Sivaraman " + "Mukund Sivaraman " + "June 2006" + "R_earrange Colormap..." + 2 + (menu-path "/Colors/Map/Colormap") + (menu-path "") + (icon icon-name -1 "gimp-colormap") + "INDEXED*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "num-colors" "Length of 'map' argument (should be equal to colormap size)") + (proc-arg 7 "map" "Remap array for the colormap")) + (proc-def "plug-in-colormap-swap" 1 + "Swap two colors in the colormap" + "This procedure takes an indexed image and lets you swap the positions of two colors in the colormap without visually changing the image." + "Mukund Sivaraman " + "Mukund Sivaraman " + "June 2006" + "_Swap Colors" + 0 + (icon icon-name -1 "") + "INDEXED*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 2 "index1" "First index in the colormap") + (proc-arg 2 "index2" "Second (other) index in the colormap"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/colorify/colorify" 1584945099 + (proc-def "plug-in-colorify" 1 + "Replace all colors with shades of a specified color" + "Makes an average of the RGB channels and uses it to set the color" + "Francisco Bustamante" + "Francisco Bustamante" + "1.1" + "Colorif_y..." + 0 + (icon icon-name -1 "") + "RGB*" + 4 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 10 "color" "Color to apply"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/color-enhance/color-enhance" 1584945099 + (proc-def "plug-in-color-enhance" 1 + "Stretch color saturation to cover maximum possible range" + "This simple plug-in does an automatic saturation stretch. For each channel in the image, it finds the minimum and maximum values... it uses those values to stretch the individual histograms to the full range. For some images it may do just what you want; for others it may not work that well. This version differs from Contrast Autostretch in that it works in HSV space, and preserves hue." + "Martin Weber" + "Martin Weber" + "1997" + "_Color Enhance (legacy)" + 1 + (menu-path "/Colors/Auto") + (icon icon-name -1 "") + "RGB*, INDEXED*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/color-cube-analyze/color-cube-analyze" 1584945099 + (proc-def "plug-in-ccanalyze" 1 + "Analyze the set of colors in the image" + "Analyze colorcube and print some information about the current image (also displays a color-histogram)" + "robert@experimental.net" + "robert@experimental.net" + "June 20th, 1997" + "Colorcube A_nalysis..." + 1 + (menu-path "/Colors/Info") + (icon icon-name -1 "") + "RGB*, GRAY*, INDEXED*" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "num-colors" "Number of colors in the image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/cml-explorer/cml-explorer" 1584945099 + (proc-def "plug-in-cml-explorer" 1 + "Create abstract Coupled-Map Lattice patterns" + "Make an image of Coupled-Map Lattice (CML). CML is a kind of Cellula Automata on continuous (value) domain. In GIMP_RUN_NONINTERACTIVE, the name of a parameter file is passed as the 4th arg. You can control CML_explorer via parameter file." + "Shuji Narazaki (narazaki@InetQ.or.jp); http://www.inetq.or.jp/~narazaki/TheGIMP/" + "Shuji Narazaki" + "1997" + "CML _Explorer..." + 1 + (menu-path "/Filters/Render/Pattern") + (icon icon-name -1 "") + "RGB*, GRAY*" + 4 0 + (proc-arg 0 "ru--mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (not used)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 4 "parameter-filename" "The name of parameter file. CML_explorer makes an image with its settings."))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/checkerboard/checkerboard" 1584945099 + (proc-def "plug-in-checkerboard" 1 + "Create a checkerboard pattern" + "More here later" + "Brent Burton & the Edward Blevins" + "Brent Burton & the Edward Blevins" + "1997" + "_Checkerboard (legacy)..." + 1 + (menu-path "/Filters/Render/Pattern") + (icon icon-name -1 "") + "RGB*, GRAY*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "check-mode" "Check mode { REGULAR (0), PSYCHOBILY (1) }") + (proc-arg 0 "check-size" "Size of the checks"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/cartoon/cartoon" 1584945099 + (proc-def "plug-in-cartoon" 1 + "Simulate a cartoon by enhancing edges" + "Propagates dark values in an image based on each pixel's relative darkness to a neighboring average. The idea behind this filter is to give the look of a black felt pen drawing subsequently shaded with color. This is achieved by darkening areas of the image which are measured to be darker than a neighborhood average. In this way, sufficiently large shifts in intensity are darkened to black. The rate at which they are darkened to black is determined by the second pct_black parameter. The mask_radius parameter controls the size of the pixel neighborhood over which the average intensity is computed and then compared to each pixel in the neighborhood to decide whether or not to darken it to black. Large values for mask_radius result in very thick black areas bordering the shaded regions of color and much less detail for black areas everywhere including inside regions of color. Small values result in more subtle pen strokes and detail everywhere. Small values for the pct_black make the blend from the color regions to the black border lines smoother and the lines themselves thinner and less noticeable; larger values achieve the opposite effect." + "Spencer Kimball" + "Bit Specialists, Inc." + "2001" + "Ca_rtoon (legacy)..." + 1 + (menu-path "/Filters/Artistic") + (icon icon-name -1 "") + "RGB*, GRAY*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 3 "mask-radius" "Cartoon mask radius (radius of pixel neighborhood)") + (proc-arg 3 "pct-black" "Percentage of darkened pixels to set to black (0.0 - 1.0)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/busy-dialog/busy-dialog" 1584945099 + (proc-def "plug-in-busy-dialog" 1 + "Show a dialog while waiting for an operation to finish" + "Used by GIMP to display a dialog, containing a spinner and a custom message, while waiting for an ongoing operation to finish. Optionally, the dialog may provide a \"Cancel\" button, which can be used to cancel the operation." + "Ell" + "Ell" + "2018" + "" + 0 + (icon icon-name -1 "") + "" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }") + (proc-arg 0 "read-fd" "The read file descriptor") + (proc-arg 0 "write-fd" "The write file descriptor") + (proc-arg 4 "message" "The message") + (proc-arg 0 "cancelable" "Whether the dialog is cancelable (TRUE or FALSE)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/border-average/border-average" 1584945099 + (proc-def "plug-in-borderaverage" 1 + "Set foreground to the average color of the image border" + "" + "Philipp Klaus" + "Internet Access AG" + "1998" + "_Border Average..." + 1 + (menu-path "/Colors/Info") + (icon icon-name -1 "") + "RGB*" + 5 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "thickness" "Border size to take in count") + (proc-arg 0 "bucket-exponent" "Bits for bucket size (default=4: 16 Levels)") + (proc-arg 10 "borderaverage" "The average color of the specified border."))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/blur/blur" 1584945099 + (proc-def "plug-in-blur" 1 + "Simple blur, fast but not very strong" + "This plug-in blurs the specified drawable, using a 3x3 blur. Indexed images are not supported." + "Miles O'Neal " + "Miles O'Neal, Spencer Kimball, Peter Mattis, Torsten Martinsen, Brian Degenhardt, Federico Mena Quintero, Stephen Norris, Daniel Cotting" + "1995-1998" + "_Blur" + 0 + (icon icon-name -1 "") + "RGB*, GRAY*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/blinds/blinds" 1584945099 + (proc-def "plug-in-blinds" 1 + "Simulate an image painted on window blinds" + "More here later" + "Andy Thomas" + "Andy Thomas" + "1997" + "_Blinds..." + 0 + (icon icon-name -1 "") + "RGB*, GRAY*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "angle-dsp" "Angle of Displacement") + (proc-arg 0 "num-segments" "Number of segments in blinds") + (proc-arg 0 "orientation" "The orientation { ORIENTATION-HORIZONTAL (0), ORIENTATION-VERTICAL (1) }") + (proc-arg 0 "bg-transparent" "Background transparent { FALSE, TRUE }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/animation-play/animation-play" 1584945099 + (proc-def "plug-in-animationplay" 1 + "Preview a GIMP layer-based animation" + "" + "Adam D. Moss " + "Adam D. Moss " + "1997, 1998..." + "_Playback..." + 1 + (menu-path "/Filters/Animation") + (icon icon-name -1 "media-playback-start") + "RGB*, INDEXED*, GRAY*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (unused)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/animation-optimize/animation-optimize" 1584945099 + (proc-def "plug-in-animationoptimize" 1 + "Modify image to reduce size when saved as GIF animation" + "This procedure applies various optimizations to a GIMP layer-based animation in an attempt to reduce the final file size. If a frame of the animation can use the 'combine' mode, this procedure attempts to maximize the number of ajdacent pixels having the same color, which improves the compression for some image formats such as GIF or MNG." + "Adam D. Moss " + "Adam D. Moss " + "1997-2003" + "Optimize (for _GIF)" + 1 + (menu-path "/Filters/Animation") + (icon icon-name -1 "") + "RGB*, INDEXED*, GRAY*" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (unused)") + (proc-arg 13 "result" "Resulting image")) + (proc-def "plug-in-animationoptimize-diff" 1 + "Reduce file size where combining layers is possible" + "This procedure applies various optimizations to a GIMP layer-based animation in an attempt to reduce the final file size. If a frame of the animation can use the 'combine' mode, this procedure uses a simple difference between the frames." + "Adam D. Moss " + "Adam D. Moss " + "1997-2001" + "_Optimize (Difference)" + 1 + (menu-path "/Filters/Animation") + (icon icon-name -1 "") + "RGB*, INDEXED*, GRAY*" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (unused)") + (proc-arg 13 "result" "Resulting image")) + (proc-def "plug-in-animationunoptimize" 1 + "Remove optimization to make editing easier" + "This procedure 'simplifies' a GIMP layer-based animation that has been optimized for animation. This makes editing the animation much easier." + "Adam D. Moss " + "Adam D. Moss " + "1997-2001" + "_Unoptimize" + 1 + (menu-path "/Filters/Animation") + (icon icon-name -1 "") + "RGB*, INDEXED*, GRAY*" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (unused)") + (proc-arg 13 "result" "Resulting image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/align-layers/align-layers" 1584945099 + (proc-def "plug-in-align-layers" 1 + "Align all visible layers of the image" + "Align visible layers" + "Shuji Narazaki " + "Shuji Narazaki" + "1997" + "Align Visi_ble Layers..." + 1 + (menu-path "/Image/Arrange") + (icon icon-name -1 "") + "RGB*,GRAY*,INDEXED*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (not used)") + (proc-arg 0 "link-after-alignment" "Link the visible layers after alignment { TRUE, FALSE }") + (proc-arg 0 "use-bottom" "use the bottom layer as the base of alignment { TRUE, FALSE }"))) +(plug-in-def "${gimp_dir}/plug-ins/layerfx/layerfx.py" 1573926079 + (proc-def "python_layerfx_drop_shadow" 1 + "Adds a drop shadow to a layer." + "Adds a drop shadow to a layer." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/Layer/La_yer Effects/_Drop Shadow...") + (icon icon-name -1 "") + "RGBA, GRAYA" + 14 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 10 "color" "The shadow's color") + (proc-arg 3 "opacity" "The shadow's opacity (0 <= opacity <= 100)") + (proc-arg 0 "contour" "A contour used to modify the shadow's intensity curve (0 <= contour <= 11)") + (proc-arg 3 "noise" "The amount of noise applied to the shadow (0 <= noise <= 100)") + (proc-arg 0 "mode" "The shadow layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 3 "spread" "Spread (0 <= spread <= 100)") + (proc-arg 0 "size" "The size of the shadow's blur (0 <= size <= 250)") + (proc-arg 3 "offset-angle" "The angle the shadow is cast in (-180 <= offset_angle <= 180)") + (proc-arg 3 "offset-distance" "The distance between the layer and the shadow (0 <= offset_distance <= 30000)") + (proc-arg 0 "knockout" "Layer knocks out Drop Shadow (TRUE or FALSE)") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layer_fx_drop_shadow" 1 + "Adds a drop shadow to a layer." + "Adds a drop shadow to a layer." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/_Layer Effects/_Drop Shadow...") + (icon icon-name -1 "") + "RGBA, GRAYA" + 14 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 10 "color" "The shadow's color") + (proc-arg 3 "opacity" "The shadow's opacity (0 <= opacity <= 100)") + (proc-arg 0 "contour" "A contour used to modify the shadow's intensity curve (0 <= contour <= 11)") + (proc-arg 3 "noise" "The amount of noise applied to the shadow (0 <= noise <= 100)") + (proc-arg 0 "mode" "The shadow layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 3 "spread" "Spread (0 <= spread <= 100)") + (proc-arg 0 "size" "The size of the shadow's blur (0 <= size <= 250)") + (proc-arg 3 "offset-angle" "The angle the shadow is cast in (-180 <= offset_angle <= 180)") + (proc-arg 3 "offset-distance" "The distance between the layer and the shadow (0 <= offset_distance <= 30000)") + (proc-arg 0 "knockout" "Layer knocks out Drop Shadow (TRUE or FALSE)") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layerfx_inner_shadow" 1 + "Adds an inner shadow to a layer" + "Adds an inner shadow to a layer" + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/Layer/La_yer Effects/I_nner Shadow...") + (icon icon-name -1 "") + "RGB*, GRAY*" + 14 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 10 "color" "The shadow's color") + (proc-arg 3 "opacity" "The shadow's opacity (0 <= opacity <= 100)") + (proc-arg 0 "contour" "A contour used to modify the shadow's intensity curve (0 <= contour <= 11)") + (proc-arg 3 "noise" "The amount of noise applied to the shadow (0 <= noise <= 100)") + (proc-arg 0 "mode" "The shadow layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 0 "source" "Source (0 = Center, 1 = Edge)") + (proc-arg 3 "choke" "Choke (0 <= choke <= 100)") + (proc-arg 0 "size" "The size of the shadow's blur (0 <= size <= 250)") + (proc-arg 3 "offset-angle" "The angle the shadow is cast in (-180 <= offset_angle <= 180)") + (proc-arg 3 "offset-distance" "The distance between the layer and the shadow (0 <= offset_distance <= 30000)") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layer_fx_inner_shadow" 1 + "Adds an inner shadow to a layer" + "Adds an inner shadow to a layer" + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/_Layer Effects/I_nner Shadow...") + (icon icon-name -1 "") + "RGB*, GRAY*" + 14 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 10 "color" "The shadow's color") + (proc-arg 3 "opacity" "The shadow's opacity (0 <= opacity <= 100)") + (proc-arg 0 "contour" "A contour used to modify the shadow's intensity curve (0 <= contour <= 11)") + (proc-arg 3 "noise" "The amount of noise applied to the shadow (0 <= noise <= 100)") + (proc-arg 0 "mode" "The shadow layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 0 "source" "Source (0 = Center, 1 = Edge)") + (proc-arg 3 "choke" "Choke (0 <= choke <= 100)") + (proc-arg 0 "size" "The size of the shadow's blur (0 <= size <= 250)") + (proc-arg 3 "offset-angle" "The angle the shadow is cast in (-180 <= offset_angle <= 180)") + (proc-arg 3 "offset-distance" "The distance between the layer and the shadow (0 <= offset_distance <= 30000)") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layerfx_outer_glow" 1 + "Creates an outer glow effect around a layer." + "Creates an outer glow effect around a layer." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/Layer/La_yer Effects/_Outer Glow...") + (icon icon-name -1 "") + "RGBA, GRAYA" + 12 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 10 "color" "The glow's color. You can also use a gradient name here.") + (proc-arg 3 "opacity" "The glow's opacity (0 <= opacity <= 100)") + (proc-arg 0 "contour" "A contour used to modify the glow's intensity curve (0 <= contour <= 11)") + (proc-arg 3 "noise" "The amount of noise applied to the glow (0 <= noise <= 100)") + (proc-arg 0 "mode" "The glow layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 3 "spread" "Spread (0 <= spread <= 100)") + (proc-arg 0 "size" "The size of the glow's blur (0 <= size <= 250)") + (proc-arg 0 "knockout" "Layer knocks out Outer Glow (TRUE or FALSE)") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layer_fx_outer_glow" 1 + "Creates an outer glow effect around a layer." + "Creates an outer glow effect around a layer." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/_Layer Effects/_Outer Glow...") + (icon icon-name -1 "") + "RGBA, GRAYA" + 12 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 10 "color" "The glow's color. You can also use a gradient name here.") + (proc-arg 3 "opacity" "The glow's opacity (0 <= opacity <= 100)") + (proc-arg 0 "contour" "A contour used to modify the glow's intensity curve (0 <= contour <= 11)") + (proc-arg 3 "noise" "The amount of noise applied to the glow (0 <= noise <= 100)") + (proc-arg 0 "mode" "The glow layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 3 "spread" "Spread (0 <= spread <= 100)") + (proc-arg 0 "size" "The size of the glow's blur (0 <= size <= 250)") + (proc-arg 0 "knockout" "Layer knocks out Outer Glow (TRUE or FALSE)") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layerfx_inner_glow" 1 + "Creates an inner glow effect around a layer." + "Creates an inner glow effect around a layer." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/Layer/La_yer Effects/_Inner Glow...") + (icon icon-name -1 "") + "RGB*, GRAY*" + 12 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 10 "color" "The glow's color. You can also use a gradient name here.") + (proc-arg 3 "opacity" "The glow's opacity (0 <= opacity <= 100)") + (proc-arg 0 "contour" "A contour used to modify the glow's intensity curve (0 <= contour <= 11)") + (proc-arg 3 "noise" "The amount of noise applied to the glow (0 <= noise <= 100)") + (proc-arg 0 "mode" "The glow layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 0 "source" "Source (0 = Center, 1 = Edge)") + (proc-arg 3 "choke" "Choke (0 <= choke <= 100)") + (proc-arg 0 "size" "The size of the glow's blur (0 <= size <= 250)") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layer_fx_inner_glow" 1 + "Creates an inner glow effect around a layer." + "Creates an inner glow effect around a layer." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/_Layer Effects/_Inner Glow...") + (icon icon-name -1 "") + "RGB*, GRAY*" + 12 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 10 "color" "The glow's color. You can also use a gradient name here.") + (proc-arg 3 "opacity" "The glow's opacity (0 <= opacity <= 100)") + (proc-arg 0 "contour" "A contour used to modify the glow's intensity curve (0 <= contour <= 11)") + (proc-arg 3 "noise" "The amount of noise applied to the glow (0 <= noise <= 100)") + (proc-arg 0 "mode" "The glow layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 0 "source" "Source (0 = Center, 1 = Edge)") + (proc-arg 3 "choke" "Choke (0 <= choke <= 100)") + (proc-arg 0 "size" "The size of the glow's blur (0 <= size <= 250)") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layerfx_bevel_emboss" 1 + "Creates beveling and embossing effects over a layer." + "Creates beveling and embossing effects over a layer." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/Layer/La_yer Effects/_Bevel and Emboss...") + (icon icon-name -1 "") + "RGBA, GRAYA" + 24 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "style" "Beveling Style (0 = Outer Bevel, 1 = Inner Bevel, 2 = Emboss, 3 = Pillow Emboss)") + (proc-arg 0 "depth" "Depth (1 <= depth <= 65)") + (proc-arg 0 "direction" "Direction (0 = Up, 1 = Down)") + (proc-arg 0 "size" "The size of the bevel (0 <= size <= 250)") + (proc-arg 0 "soften" "Soften (0 <= soften <= 16)") + (proc-arg 3 "angle" "Angle of the light source (-180 <= angle <= 180)") + (proc-arg 3 "altitude" "Altitude of the light source (0 <= altitude <= 90)") + (proc-arg 0 "gloss-contour" "A contour used to modify the gloss's intensity curve (0 <= gloss_contour <= 11)") + (proc-arg 10 "highlight-color" "The highlight color") + (proc-arg 0 "highlight-mode" "The highlight layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 3 "highlight-opacity" "The highlight's opacity (0 <= highlight_opacity <= 100)") + (proc-arg 10 "shadow-color" "The shadow color") + (proc-arg 0 "shadow-mode" "The shadow layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 3 "shadow-opacity" "The shadow's opacity (0 <= shadow_opacity <= 100)") + (proc-arg 0 "surface-contour" "A contour used to modify the surface shape (0 <= gloss_contour <= 11)") + (proc-arg 0 "use-texture" "Apply a texture to the surface (TRUE or FALSE)") + (proc-arg 4 "pattern" "The texture pattern") + (proc-arg 3 "scale" "The texture scale (1 <= scale <= 1000)") + (proc-arg 3 "tex-depth" "The texture depth (-1000 <= tex_depth <= 1000)") + (proc-arg 0 "invert" "Invert (TRUE or FALSE)") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layer_fx_bevel_emboss" 1 + "Creates beveling and embossing effects over a layer." + "Creates beveling and embossing effects over a layer." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/_Layer Effects/_Bevel and Emboss...") + (icon icon-name -1 "") + "RGBA, GRAYA" + 24 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "style" "Beveling Style (0 = Outer Bevel, 1 = Inner Bevel, 2 = Emboss, 3 = Pillow Emboss)") + (proc-arg 0 "depth" "Depth (1 <= depth <= 65)") + (proc-arg 0 "direction" "Direction (0 = Up, 1 = Down)") + (proc-arg 0 "size" "The size of the bevel (0 <= size <= 250)") + (proc-arg 0 "soften" "Soften (0 <= soften <= 16)") + (proc-arg 3 "angle" "Angle of the light source (-180 <= angle <= 180)") + (proc-arg 3 "altitude" "Altitude of the light source (0 <= altitude <= 90)") + (proc-arg 0 "gloss-contour" "A contour used to modify the gloss's intensity curve (0 <= gloss_contour <= 11)") + (proc-arg 10 "highlight-color" "The highlight color") + (proc-arg 0 "highlight-mode" "The highlight layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 3 "highlight-opacity" "The highlight's opacity (0 <= highlight_opacity <= 100)") + (proc-arg 10 "shadow-color" "The shadow color") + (proc-arg 0 "shadow-mode" "The shadow layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 3 "shadow-opacity" "The shadow's opacity (0 <= shadow_opacity <= 100)") + (proc-arg 0 "surface-contour" "A contour used to modify the surface shape (0 <= gloss_contour <= 11)") + (proc-arg 0 "use-texture" "Apply a texture to the surface (TRUE or FALSE)") + (proc-arg 4 "pattern" "The texture pattern") + (proc-arg 3 "scale" "The texture scale (1 <= scale <= 1000)") + (proc-arg 3 "tex-depth" "The texture depth (-1000 <= tex_depth <= 1000)") + (proc-arg 0 "invert" "Invert (TRUE or FALSE)") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layerfx_satin" 1 + "Creates a satin effect over a layer." + "Creates a satin effect over a layer." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/Layer/La_yer Effects/_Satin...") + (icon icon-name -1 "") + "RGBA, GRAYA" + 12 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 10 "color" "The shadow color") + (proc-arg 3 "opacity" "The shadow opacity (0 <= opacity <= 100)") + (proc-arg 0 "mode" "The shadow layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 3 "offset-angle" "The angle the shadow is cast in (-180 <= offset_angle <= 180)") + (proc-arg 3 "offset-distance" "The offset distance (0 <= offset_distance <= 30000)") + (proc-arg 0 "size" "The size of the satin's blur (0 <= size <= 250)") + (proc-arg 0 "contour" "A contour used to modify the shadow's intensity curve (0 <= contour <= 11)") + (proc-arg 0 "invert" "Invert (TRUE or FALSE)") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layer_fx_satin" 1 + "Creates a satin effect over a layer." + "Creates a satin effect over a layer." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/_Layer Effects/_Satin...") + (icon icon-name -1 "") + "RGBA, GRAYA" + 12 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 10 "color" "The shadow color") + (proc-arg 3 "opacity" "The shadow opacity (0 <= opacity <= 100)") + (proc-arg 0 "mode" "The shadow layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 3 "offset-angle" "The angle the shadow is cast in (-180 <= offset_angle <= 180)") + (proc-arg 3 "offset-distance" "The offset distance (0 <= offset_distance <= 30000)") + (proc-arg 0 "size" "The size of the satin's blur (0 <= size <= 250)") + (proc-arg 0 "contour" "A contour used to modify the shadow's intensity curve (0 <= contour <= 11)") + (proc-arg 0 "invert" "Invert (TRUE or FALSE)") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layerfx_stroke" 1 + "Creates a stroke around a layer." + "Creates a stroke around a layer." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/Layer/La_yer Effects/S_troke...") + (icon icon-name -1 "") + "RGBA, GRAYA" + 9 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 10 "color" "The stroke color. This can also be a list or tuple to use gradients or patterns. For a gradient stroke, use a list or tuple of the form (gradient_name, gradient_type, repeat, reverse, center_x, center_y, angle, width). For a patterned stroke, use the form (pattern_name, scale, interpolation_type).") + (proc-arg 3 "opacity" "The stroke opacity (0 <= opacity <= 100)") + (proc-arg 0 "mode" "The stroke layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 0 "size" "The stroke's width (1 <= size <= 250)") + (proc-arg 3 "position" "The stroke's position; 0 = inside the layer borders, 100 = outside the layer border (0 <= position <= 100)") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layer_fx_stroke" 1 + "Creates a stroke around a layer." + "Creates a stroke around a layer." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/_Layer Effects/S_troke...") + (icon icon-name -1 "") + "RGBA, GRAYA" + 9 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 10 "color" "The stroke color. This can also be a list or tuple to use gradients or patterns. For a gradient stroke, use a list or tuple of the form (gradient_name, gradient_type, repeat, reverse, center_x, center_y, angle, width). For a patterned stroke, use the form (pattern_name, scale, interpolation_type).") + (proc-arg 3 "opacity" "The stroke opacity (0 <= opacity <= 100)") + (proc-arg 0 "mode" "The stroke layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 0 "size" "The stroke's width (1 <= size <= 250)") + (proc-arg 3 "position" "The stroke's position; 0 = inside the layer borders, 100 = outside the layer border (0 <= position <= 100)") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layerfx_color_overlay" 1 + "Overlays a color over a layer." + "Overlays a color over a layer." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/Layer/La_yer Effects/_Color Overlay...") + (icon icon-name -1 "") + "RGB*, GRAY*" + 7 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 10 "color" "The color to overlay") + (proc-arg 3 "opacity" "The overlay opacity (0 <= opacity <= 100)") + (proc-arg 0 "mode" "The overlay layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layer_fx_color_overlay" 1 + "Overlays a color over a layer." + "Overlays a color over a layer." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/_Layer Effects/_Color Overlay...") + (icon icon-name -1 "") + "RGB*, GRAY*" + 7 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 10 "color" "The color to overlay") + (proc-arg 3 "opacity" "The overlay opacity (0 <= opacity <= 100)") + (proc-arg 0 "mode" "The overlay layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layerfx_gradient_overlay" 1 + "Overlays a gradient over a layer." + "Overlays a gradient over a layer." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/Layer/La_yer Effects/_Gradient Overlay...") + (icon icon-name -1 "") + "RGB*, GRAY*" + 14 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 4 "gradient" "The gradient to overlay") + (proc-arg 0 "gradient-type" "The type of gradient { GRADIENT-LINEAR (0), GRADIENT-BILINEAR (1), GRADIENT-RADIAL (2), GRADIENT-SQUARE (3), GRADIENT-CONICAL-SYMMETRIC (4), GRADIENT-CONICAL-ASYMMETRIC (5), GRADIENT-SHAPEBURST-ANGULAR (6), GRADIENT-SHAPEBURST-SPHERICAL (7), GRADIENT-SHAPEBURST-DIMPLED (8), GRADIENT-SPIRAL-CLOCKWISE (9), GRADIENT-SPIRAL-ANTICLOCKWISE (10) }") + (proc-arg 0 "repeat" "Repeat mode { REPEAT-NONE (0), REPEAT-SAWTOOTH (1), REPEAT-TRIANGULAR (2) }") + (proc-arg 0 "reverse" "Use the reverse gradient (TRUE or FALSE)") + (proc-arg 3 "opacity" "The overlay opacity (0 <= opacity <= 100)") + (proc-arg 0 "mode" "The overlay layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 3 "center-x" "X coordinate of center") + (proc-arg 3 "center-y" "Y coordinate of center") + (proc-arg 3 "angle" "Gradient angle (-180 <= angle <= 180)") + (proc-arg 3 "width" "Gradient width (0 <= width <= 262144") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layer_fx_gradient_overlay" 1 + "Overlays a gradient over a layer." + "Overlays a gradient over a layer." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/_Layer Effects/_Gradient Overlay...") + (icon icon-name -1 "") + "RGB*, GRAY*" + 14 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 4 "gradient" "The gradient to overlay") + (proc-arg 0 "gradient-type" "The type of gradient { GRADIENT-LINEAR (0), GRADIENT-BILINEAR (1), GRADIENT-RADIAL (2), GRADIENT-SQUARE (3), GRADIENT-CONICAL-SYMMETRIC (4), GRADIENT-CONICAL-ASYMMETRIC (5), GRADIENT-SHAPEBURST-ANGULAR (6), GRADIENT-SHAPEBURST-SPHERICAL (7), GRADIENT-SHAPEBURST-DIMPLED (8), GRADIENT-SPIRAL-CLOCKWISE (9), GRADIENT-SPIRAL-ANTICLOCKWISE (10) }") + (proc-arg 0 "repeat" "Repeat mode { REPEAT-NONE (0), REPEAT-SAWTOOTH (1), REPEAT-TRIANGULAR (2) }") + (proc-arg 0 "reverse" "Use the reverse gradient (TRUE or FALSE)") + (proc-arg 3 "opacity" "The overlay opacity (0 <= opacity <= 100)") + (proc-arg 0 "mode" "The overlay layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 3 "center-x" "X coordinate of center") + (proc-arg 3 "center-y" "Y coordinate of center") + (proc-arg 3 "angle" "Gradient angle (-180 <= angle <= 180)") + (proc-arg 3 "width" "Gradient width (0 <= width <= 262144") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layerfx_pattern_overlay" 1 + "Overlays a pattern over a layer." + "Overlays a pattern over a layer." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/Layer/La_yer Effects/_Pattern Overlay...") + (icon icon-name -1 "") + "RGB*, GRAY*" + 9 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 4 "pattern" "The pattern to overlay") + (proc-arg 3 "opacity" "The overlay opacity (0 <= opacity <= 100)") + (proc-arg 0 "mode" "The overlay layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 3 "scale" "Amount to scale the pattern (1 <= scale <= 1000)") + (proc-arg 0 "interpolation" "Type of interpolation { INTERPOLATION-NONE (0), INTERPOLATION-LINEAR (1), INTERPOLATION-CUBIC (2), INTERPOLATION-LANCZOS (3) }") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layer_fx_pattern_overlay" 1 + "Overlays a pattern over a layer." + "Overlays a pattern over a layer." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/_Layer Effects/_Pattern Overlay...") + (icon icon-name -1 "") + "RGB*, GRAY*" + 9 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 4 "pattern" "The pattern to overlay") + (proc-arg 3 "opacity" "The overlay opacity (0 <= opacity <= 100)") + (proc-arg 0 "mode" "The overlay layer's combination mode { NORMAL-MODE (0), DISSOLVE-MODE (1), MULTIPLY-MODE (3), SCREEN-MODE (4), OVERLAY-MODE (5), DIFFERENCE-MODE (6), ADDITION-MODE (7), SUBTRACT-MODE (8), DARKEN-ONLY-MODE (9), LIGHTEN-ONLY-MODE (10), HUE-MODE (11), SATURATION-MODE (12), COLOR-MODE (13), VALUE-MODE (14), DIVIDE-MODE (15), DODGE-MODE (16), BURN-MODE (17), HARDLIGHT-MODE (18), SOFTLIGHT-MODE (19), GRAIN-EXTRACT-MODE (20), GRAIN-MERGE-MODE (21), COLOR-ERASE-MODE (22), ERASE-MODE (23), REPLACE-MODE (24), ANTI-ERASE-MODE (25) }") + (proc-arg 3 "scale" "Amount to scale the pattern (1 <= scale <= 1000)") + (proc-arg 0 "interpolation" "Type of interpolation { INTERPOLATION-NONE (0), INTERPOLATION-LINEAR (1), INTERPOLATION-CUBIC (2), INTERPOLATION-LANCZOS (3) }") + (proc-arg 0 "merge" "Merge with layer (TRUE or FALSE)")) + (proc-def "python_layerfx_reapply_effects" 1 + "Reapply all effects previously applied to a layer." + "Reapply all effects previously applied to a layer. NOTE: Does not work for effects that were applied with the \"Merge with layer\" option active." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/Layer/La_yer Effects/_Reapply Effects") + (icon icon-name -1 "") + "RGB*, GRAY*" + 3 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable")) + (proc-def "python_layer_fx_reapply_effects" 1 + "Reapply all effects previously applied to a layer." + "Reapply all effects previously applied to a layer. NOTE: Does not work for effects that were applied with the \"Merge with layer\" option active." + "Jonathan Stipe" + "Jonathan Stipe" + "July 2008" + "" + 1 + (menu-path "/_Layer Effects/_Reapply Effects") + (icon icon-name -1 "") + "RGB*, GRAY*" + 3 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable")) + (has-init)) + +# end of pluginrc diff --git a/2.10/profilerc b/2.10/profilerc new file mode 100644 index 0000000..2a75c3e --- /dev/null +++ b/2.10/profilerc @@ -0,0 +1,4 @@ +# GIMP color profile history + + +# end of color profile history diff --git a/2.10/tags.xml b/2.10/tags.xml new file mode 100644 index 0000000..0fdcd14 --- /dev/null +++ b/2.10/tags.xml @@ -0,0 +1,2160 @@ + + + + + round + + + + fuzzy + round + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2.10/templaterc b/2.10/templaterc new file mode 100644 index 0000000..fe461c9 --- /dev/null +++ b/2.10/templaterc @@ -0,0 +1,500 @@ +# GIMP templaterc +# +# This file will be entirely rewritten each time you exit. + +(GimpTemplate "A0 (300 ppi)" + (width 9933) + (height 14043) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A1 (300 ppi)" + (width 7016) + (height 9933) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A2 (300 ppi)" + (width 4960) + (height 7016) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A3 (300 ppi)" + (width 3508) + (height 4960) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A4 (300 ppi)" + (width 2480) + (height 3508) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A5 (300 ppi)" + (width 1748) + (height 2480) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A6 (300 ppi)" + (width 1240) + (height 1748) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A7 (300 ppi)" + (width 874) + (height 1240) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "B4 (300 ppi)" + (width 2953) + (height 4169) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "B5 (300 ppi)" + (width 2079) + (height 2953) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "B5-Japan (300 ppi)" + (width 2150) + (height 3035) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "US Letter (300 ppi)" + (width 2550) + (height 3300) + (unit inches) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "US Legal (300 ppi)" + (width 2550) + (height 4200) + (unit inches) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "88.9×50.8 US Business Card" + (icon-name "gimp-business-card") + (width 1050) + (height 600) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "85×55 Western Europe Business Card" + (icon-name "gimp-business-card") + (width 1004) + (height 650) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "90×50 Eastern Europe Business Card" + (icon-name "gimp-business-card") + (width 1063) + (height 591) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "90×55 Business Card (AU, IN etc.)" + (icon-name "gimp-business-card") + (width 1063) + (height 650) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "87×49 Vistaprint Business Card" + (icon-name "gimp-business-card") + (width 1028) + (height 579) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Toilet paper (US, 300 ppi)" + (icon-name "gimp-toilet-paper") + (width 1350) + (height 1350) + (unit inches) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "CD cover (300 ppi)" + (icon-name "media-optical") + (width 1429) + (height 1417) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Web banner leaderboard 728x90" + (icon-name "gimp-web") + (width 728) + (height 90) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Web banner large rectangle 336×280" + (icon-name "gimp-web") + (width 336) + (height 280) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Web banner medium rectangle 300×250" + (icon-name "gimp-web") + (width 300) + (height 250) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Web banner large mobile 320×100" + (icon-name "gimp-web") + (width 320) + (height 100) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Web banner large skyscraper 300×600" + (icon-name "gimp-web") + (width 300) + (height 600) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "1280×720 (HD 720p)" + (icon-name "gimp-video") + (width 1280) + (height 720) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "1920×1080 (Full HD 1080p)" + (icon-name "gimp-video") + (width 1920) + (height 1080) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "3840x2160 (4K UHD)" + (icon-name "gimp-video") + (width 3840) + (height 2160) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "4096×2160 (Digital Cinema Initiatives 4K)" + (icon-name "gimp-video") + (width 4096) + (height 2160) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "1366×768 HD" + (icon-name "gimp-display") + (width 1366) + (height 768) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "1920×1200 WUXGA" + (icon-name "gimp-display") + (width 1920) + (height 1200) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "2560x1600 WQXGA" + (icon-name "gimp-display") + (width 2560) + (height 1600) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "3840×2160 4K UHD" + (icon-name "gimp-display") + (width 3840) + (height 2160) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Apple iPhone 6/7" + (icon-name "gimp-smartphone") + (width 750) + (height 1334) + (unit millimeters) + (xresolution 326) + (yresolution 326) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Apple iPhone 5" + (icon-name "gimp-smartphone") + (width 640) + (height 1136) + (unit millimeters) + (xresolution 326) + (yresolution 326) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Apple iPad 3&4, Air" + (icon-name "gimp-smartphone") + (width 2048) + (height 2732) + (unit millimeters) + (xresolution 264) + (yresolution 264) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Samsung Galaxy S6" + (icon-name "gimp-smartphone") + (width 1440) + (height 2560) + (unit millimeters) + (xresolution 577) + (yresolution 577) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Samsung Galaxy S5" + (icon-name "gimp-smartphone") + (width 1080) + (height 1920) + (unit millimeters) + (xresolution 360) + (yresolution 360) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Samsung Galaxy Tab 2&3 10,1 inch" + (icon-name "gimp-smartphone") + (width 800) + (height 1280) + (unit millimeters) + (xresolution 149) + (yresolution 149) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) + +# end of templaterc diff --git a/2.10/themerc b/2.10/themerc new file mode 100644 index 0000000..4c86916 --- /dev/null +++ b/2.10/themerc @@ -0,0 +1,17 @@ +# GIMP themerc +# +# This file is written on GIMP startup and on every theme change. +# It is NOT supposed to be edited manually. Edit your personal +# gtkrc file instead (/home/ray/.config/GIMP/2.10/gtkrc). + +style "gimp-spin-scale-style" +{ + GimpSpinScale::compact = 1 +} + +class "GimpSpinScale" style "gimp-spin-scale-style" + +include "/usr/share/gimp/2.0/themes/Dark/gtkrc" +include "/etc/gimp/2.0/gtkrc" + +# end of themerc diff --git a/2.10/tool-options/gimp-airbrush-tool b/2.10/tool-options/gimp-airbrush-tool new file mode 100644 index 0000000..d7fedc3 --- /dev/null +++ b/2.10/tool-options/gimp-airbrush-tool @@ -0,0 +1,13 @@ +# GIMP gimp-airbrush-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(gradient "FG to BG (RGB)") +(palette "gaga-g") +(brush-size 46) +(brush-spacing 0.12) +(brush-hardness 0.59999999999999998) +(brush-force 0.84999999999999998) + +# end of gimp-airbrush-tool options diff --git a/2.10/tool-options/gimp-align-tool b/2.10/tool-options/gimp-align-tool new file mode 100644 index 0000000..521b3bf --- /dev/null +++ b/2.10/tool-options/gimp-align-tool @@ -0,0 +1,4 @@ +# GIMP gimp-align-tool options + + +# end of gimp-align-tool options diff --git a/2.10/tool-options/gimp-brightness-contrast-tool b/2.10/tool-options/gimp-brightness-contrast-tool new file mode 100644 index 0000000..16bc2d3 --- /dev/null +++ b/2.10/tool-options/gimp-brightness-contrast-tool @@ -0,0 +1,4 @@ +# GIMP gimp-brightness-contrast-tool options + + +# end of gimp-brightness-contrast-tool options diff --git a/2.10/tool-options/gimp-bucket-fill-tool b/2.10/tool-options/gimp-bucket-fill-tool new file mode 100644 index 0000000..a899e01 --- /dev/null +++ b/2.10/tool-options/gimp-bucket-fill-tool @@ -0,0 +1,9 @@ +# GIMP gimp-bucket-fill-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) +(pattern "Pine") +(brush-size 51) +(brush-hardness 0.5) +(fill-mode bg) + +# end of gimp-bucket-fill-tool options diff --git a/2.10/tool-options/gimp-by-color-select-tool b/2.10/tool-options/gimp-by-color-select-tool new file mode 100644 index 0000000..434e5db --- /dev/null +++ b/2.10/tool-options/gimp-by-color-select-tool @@ -0,0 +1,4 @@ +# GIMP gimp-by-color-select-tool options + + +# end of gimp-by-color-select-tool options diff --git a/2.10/tool-options/gimp-cage-tool b/2.10/tool-options/gimp-cage-tool new file mode 100644 index 0000000..70074a2 --- /dev/null +++ b/2.10/tool-options/gimp-cage-tool @@ -0,0 +1,4 @@ +# GIMP gimp-cage-tool options + + +# end of gimp-cage-tool options diff --git a/2.10/tool-options/gimp-clone-tool b/2.10/tool-options/gimp-clone-tool new file mode 100644 index 0000000..f0b85d1 --- /dev/null +++ b/2.10/tool-options/gimp-clone-tool @@ -0,0 +1,14 @@ +# GIMP gimp-clone-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) +(opacity 0.54000000000000004) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(pattern "Pine") +(palette "gaga-g") +(brush-size 46) +(brush-spacing 0.12) +(brush-hardness 0.59999999999999998) +(brush-force 0.84999999999999998) + +# end of gimp-clone-tool options diff --git a/2.10/tool-options/gimp-color-picker-tool b/2.10/tool-options/gimp-color-picker-tool new file mode 100644 index 0000000..0a46701 --- /dev/null +++ b/2.10/tool-options/gimp-color-picker-tool @@ -0,0 +1,5 @@ +# GIMP gimp-color-picker-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) + +# end of gimp-color-picker-tool options diff --git a/2.10/tool-options/gimp-convolve-tool b/2.10/tool-options/gimp-convolve-tool new file mode 100644 index 0000000..866ab96 --- /dev/null +++ b/2.10/tool-options/gimp-convolve-tool @@ -0,0 +1,13 @@ +# GIMP gimp-convolve-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(palette "gaga-g") +(brush-size 46) +(brush-spacing 0.12) +(brush-hardness 0.59999999999999998) +(brush-force 0.84999999999999998) +(rate 81.799999999999997) + +# end of gimp-convolve-tool options diff --git a/2.10/tool-options/gimp-crop-tool b/2.10/tool-options/gimp-crop-tool new file mode 100644 index 0000000..4b8d206 --- /dev/null +++ b/2.10/tool-options/gimp-crop-tool @@ -0,0 +1,12 @@ +# GIMP gimp-crop-tool options + +(aspect-denominator 1080) +(aspect-numerator 1920) +(desired-fixed-size-height 900) +(desired-fixed-size-width 900) +(guide thirds) +(overridden-fixed-aspect yes) +(overridden-fixed-size yes) +(highlight-opacity 0.93000000000000005) + +# end of gimp-crop-tool options diff --git a/2.10/tool-options/gimp-curves-tool b/2.10/tool-options/gimp-curves-tool new file mode 100644 index 0000000..b7a332b --- /dev/null +++ b/2.10/tool-options/gimp-curves-tool @@ -0,0 +1,4 @@ +# GIMP gimp-curves-tool options + + +# end of gimp-curves-tool options diff --git a/2.10/tool-options/gimp-dodge-burn-tool b/2.10/tool-options/gimp-dodge-burn-tool new file mode 100644 index 0000000..cc31439 --- /dev/null +++ b/2.10/tool-options/gimp-dodge-burn-tool @@ -0,0 +1,12 @@ +# GIMP gimp-dodge-burn-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(palette "gaga-g") +(brush-size 46) +(brush-spacing 0.12) +(brush-hardness 0.59999999999999998) +(brush-force 0.84999999999999998) + +# end of gimp-dodge-burn-tool options diff --git a/2.10/tool-options/gimp-ellipse-select-tool b/2.10/tool-options/gimp-ellipse-select-tool new file mode 100644 index 0000000..2e724ce --- /dev/null +++ b/2.10/tool-options/gimp-ellipse-select-tool @@ -0,0 +1,5 @@ +# GIMP gimp-ellipse-select-tool options + +(fixed-center yes) + +# end of gimp-ellipse-select-tool options diff --git a/2.10/tool-options/gimp-eraser-tool b/2.10/tool-options/gimp-eraser-tool new file mode 100644 index 0000000..43cb577 --- /dev/null +++ b/2.10/tool-options/gimp-eraser-tool @@ -0,0 +1,12 @@ +# GIMP gimp-eraser-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(palette "gaga-g") +(brush-size 46) +(brush-spacing 0.12) +(brush-hardness 0.59999999999999998) +(brush-force 0.84999999999999998) + +# end of gimp-eraser-tool options diff --git a/2.10/tool-options/gimp-flip-tool b/2.10/tool-options/gimp-flip-tool new file mode 100644 index 0000000..cd1ccd5 --- /dev/null +++ b/2.10/tool-options/gimp-flip-tool @@ -0,0 +1,5 @@ +# GIMP gimp-flip-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) + +# end of gimp-flip-tool options diff --git a/2.10/tool-options/gimp-foreground-select-tool b/2.10/tool-options/gimp-foreground-select-tool new file mode 100644 index 0000000..4dd7c11 --- /dev/null +++ b/2.10/tool-options/gimp-foreground-select-tool @@ -0,0 +1,5 @@ +# GIMP gimp-foreground-select-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) + +# end of gimp-foreground-select-tool options diff --git a/2.10/tool-options/gimp-free-select-tool b/2.10/tool-options/gimp-free-select-tool new file mode 100644 index 0000000..86b6ab3 --- /dev/null +++ b/2.10/tool-options/gimp-free-select-tool @@ -0,0 +1,4 @@ +# GIMP gimp-free-select-tool options + + +# end of gimp-free-select-tool options diff --git a/2.10/tool-options/gimp-fuzzy-select-tool b/2.10/tool-options/gimp-fuzzy-select-tool new file mode 100644 index 0000000..bfe0a84 --- /dev/null +++ b/2.10/tool-options/gimp-fuzzy-select-tool @@ -0,0 +1,6 @@ +# GIMP gimp-fuzzy-select-tool options + +(operation add) +(threshold 3) + +# end of gimp-fuzzy-select-tool options diff --git a/2.10/tool-options/gimp-gegl-tool b/2.10/tool-options/gimp-gegl-tool new file mode 100644 index 0000000..f085e5f --- /dev/null +++ b/2.10/tool-options/gimp-gegl-tool @@ -0,0 +1,4 @@ +# GIMP gimp-gegl-tool options + + +# end of gimp-gegl-tool options diff --git a/2.10/tool-options/gimp-gradient-tool b/2.10/tool-options/gimp-gradient-tool new file mode 100644 index 0000000..39f70bb --- /dev/null +++ b/2.10/tool-options/gimp-gradient-tool @@ -0,0 +1,8 @@ +# GIMP gimp-gradient-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) +(gradient "FG to BG (RGB)") +(brush-size 51) +(brush-hardness 0.5) + +# end of gimp-gradient-tool options diff --git a/2.10/tool-options/gimp-handle-transform-tool b/2.10/tool-options/gimp-handle-transform-tool new file mode 100644 index 0000000..52b757a --- /dev/null +++ b/2.10/tool-options/gimp-handle-transform-tool @@ -0,0 +1,5 @@ +# GIMP gimp-handle-transform-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) + +# end of gimp-handle-transform-tool options diff --git a/2.10/tool-options/gimp-heal-tool b/2.10/tool-options/gimp-heal-tool new file mode 100644 index 0000000..483303e --- /dev/null +++ b/2.10/tool-options/gimp-heal-tool @@ -0,0 +1,13 @@ +# GIMP gimp-heal-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) +(opacity 0.93000000000000005) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(palette "gaga-g") +(brush-size 46) +(brush-spacing 0.12) +(brush-hardness 0.59999999999999998) +(brush-force 0.84999999999999998) + +# end of gimp-heal-tool options diff --git a/2.10/tool-options/gimp-ink-tool b/2.10/tool-options/gimp-ink-tool new file mode 100644 index 0000000..e4ccd94 --- /dev/null +++ b/2.10/tool-options/gimp-ink-tool @@ -0,0 +1,7 @@ +# GIMP gimp-ink-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) +(brush-size 51) +(brush-hardness 0.5) + +# end of gimp-ink-tool options diff --git a/2.10/tool-options/gimp-iscissors-tool b/2.10/tool-options/gimp-iscissors-tool new file mode 100644 index 0000000..fb42baf --- /dev/null +++ b/2.10/tool-options/gimp-iscissors-tool @@ -0,0 +1,4 @@ +# GIMP gimp-iscissors-tool options + + +# end of gimp-iscissors-tool options diff --git a/2.10/tool-options/gimp-levels-tool b/2.10/tool-options/gimp-levels-tool new file mode 100644 index 0000000..04c0f93 --- /dev/null +++ b/2.10/tool-options/gimp-levels-tool @@ -0,0 +1,4 @@ +# GIMP gimp-levels-tool options + + +# end of gimp-levels-tool options diff --git a/2.10/tool-options/gimp-measure-tool b/2.10/tool-options/gimp-measure-tool new file mode 100644 index 0000000..dbc4317 --- /dev/null +++ b/2.10/tool-options/gimp-measure-tool @@ -0,0 +1,5 @@ +# GIMP gimp-measure-tool options + +(interpolation linear) + +# end of gimp-measure-tool options diff --git a/2.10/tool-options/gimp-move-tool b/2.10/tool-options/gimp-move-tool new file mode 100644 index 0000000..c173171 --- /dev/null +++ b/2.10/tool-options/gimp-move-tool @@ -0,0 +1,5 @@ +# GIMP gimp-move-tool options + +(move-current yes) + +# end of gimp-move-tool options diff --git a/2.10/tool-options/gimp-mypaint-brush-tool b/2.10/tool-options/gimp-mypaint-brush-tool new file mode 100644 index 0000000..bff364c --- /dev/null +++ b/2.10/tool-options/gimp-mypaint-brush-tool @@ -0,0 +1,10 @@ +# GIMP gimp-mypaint-brush-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) +(mybrush "Standard") +(brush-size 51) +(brush-hardness 0.5) +(radius 3.0099999999999998) +(hardness 0.94999999999999996) + +# end of gimp-mypaint-brush-tool options diff --git a/2.10/tool-options/gimp-offset-tool b/2.10/tool-options/gimp-offset-tool new file mode 100644 index 0000000..6ab322a --- /dev/null +++ b/2.10/tool-options/gimp-offset-tool @@ -0,0 +1,5 @@ +# GIMP gimp-offset-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) + +# end of gimp-offset-tool options diff --git a/2.10/tool-options/gimp-operation-tool b/2.10/tool-options/gimp-operation-tool new file mode 100644 index 0000000..f4bc66e --- /dev/null +++ b/2.10/tool-options/gimp-operation-tool @@ -0,0 +1,5 @@ +# GIMP gimp-operation-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) + +# end of gimp-operation-tool options diff --git a/2.10/tool-options/gimp-paintbrush-tool b/2.10/tool-options/gimp-paintbrush-tool new file mode 100644 index 0000000..b2eb352 --- /dev/null +++ b/2.10/tool-options/gimp-paintbrush-tool @@ -0,0 +1,13 @@ +# GIMP gimp-paintbrush-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(gradient "FG to BG (RGB)") +(palette "gaga-g") +(brush-size 46) +(brush-spacing 0.12) +(brush-hardness 0.59999999999999998) +(brush-force 0.84999999999999998) + +# end of gimp-paintbrush-tool options diff --git a/2.10/tool-options/gimp-pencil-tool b/2.10/tool-options/gimp-pencil-tool new file mode 100644 index 0000000..1cfa57c --- /dev/null +++ b/2.10/tool-options/gimp-pencil-tool @@ -0,0 +1,13 @@ +# GIMP gimp-pencil-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(gradient "FG to BG (RGB)") +(palette "gaga-g") +(brush-size 46) +(brush-spacing 0.12) +(brush-hardness 0.59999999999999998) +(brush-force 0.84999999999999998) + +# end of gimp-pencil-tool options diff --git a/2.10/tool-options/gimp-perspective-clone-tool b/2.10/tool-options/gimp-perspective-clone-tool new file mode 100644 index 0000000..84d2bc5 --- /dev/null +++ b/2.10/tool-options/gimp-perspective-clone-tool @@ -0,0 +1,13 @@ +# GIMP gimp-perspective-clone-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(pattern "Pine") +(palette "gaga-g") +(brush-size 46) +(brush-spacing 0.12) +(brush-hardness 0.59999999999999998) +(brush-force 0.84999999999999998) + +# end of gimp-perspective-clone-tool options diff --git a/2.10/tool-options/gimp-perspective-tool b/2.10/tool-options/gimp-perspective-tool new file mode 100644 index 0000000..716563e --- /dev/null +++ b/2.10/tool-options/gimp-perspective-tool @@ -0,0 +1,5 @@ +# GIMP gimp-perspective-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) + +# end of gimp-perspective-tool options diff --git a/2.10/tool-options/gimp-rect-select-tool b/2.10/tool-options/gimp-rect-select-tool new file mode 100644 index 0000000..525411d --- /dev/null +++ b/2.10/tool-options/gimp-rect-select-tool @@ -0,0 +1,7 @@ +# GIMP gimp-rect-select-tool options + +(aspect-denominator 1080) +(aspect-numerator 1920) +(overridden-fixed-aspect yes) + +# end of gimp-rect-select-tool options diff --git a/2.10/tool-options/gimp-rotate-tool b/2.10/tool-options/gimp-rotate-tool new file mode 100644 index 0000000..3c37edc --- /dev/null +++ b/2.10/tool-options/gimp-rotate-tool @@ -0,0 +1,5 @@ +# GIMP gimp-rotate-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) + +# end of gimp-rotate-tool options diff --git a/2.10/tool-options/gimp-scale-tool b/2.10/tool-options/gimp-scale-tool new file mode 100644 index 0000000..c48c232 --- /dev/null +++ b/2.10/tool-options/gimp-scale-tool @@ -0,0 +1,6 @@ +# GIMP gimp-scale-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) +(interpolation none) + +# end of gimp-scale-tool options diff --git a/2.10/tool-options/gimp-shear-tool b/2.10/tool-options/gimp-shear-tool new file mode 100644 index 0000000..b1cf8f8 --- /dev/null +++ b/2.10/tool-options/gimp-shear-tool @@ -0,0 +1,4 @@ +# GIMP gimp-shear-tool options + + +# end of gimp-shear-tool options diff --git a/2.10/tool-options/gimp-smudge-tool b/2.10/tool-options/gimp-smudge-tool new file mode 100644 index 0000000..3c692c7 --- /dev/null +++ b/2.10/tool-options/gimp-smudge-tool @@ -0,0 +1,13 @@ +# GIMP gimp-smudge-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(gradient "FG to BG (RGB)") +(palette "gaga-g") +(brush-size 46) +(brush-spacing 0.12) +(brush-hardness 0.59999999999999998) +(brush-force 0.84999999999999998) + +# end of gimp-smudge-tool options diff --git a/2.10/tool-options/gimp-text-tool b/2.10/tool-options/gimp-text-tool new file mode 100644 index 0000000..2b1ff86 --- /dev/null +++ b/2.10/tool-options/gimp-text-tool @@ -0,0 +1,9 @@ +# GIMP gimp-text-tool options + +(palette "gaga-g") +(font "Sans-serif") +(justify center) +(letter-spacing 1) +(box-mode fixed) + +# end of gimp-text-tool options diff --git a/2.10/tool-options/gimp-threshold-tool b/2.10/tool-options/gimp-threshold-tool new file mode 100644 index 0000000..f114556 --- /dev/null +++ b/2.10/tool-options/gimp-threshold-tool @@ -0,0 +1,4 @@ +# GIMP gimp-threshold-tool options + + +# end of gimp-threshold-tool options diff --git a/2.10/tool-options/gimp-transform-3d-tool b/2.10/tool-options/gimp-transform-3d-tool new file mode 100644 index 0000000..808e9fc --- /dev/null +++ b/2.10/tool-options/gimp-transform-3d-tool @@ -0,0 +1,5 @@ +# GIMP gimp-transform-3d-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) + +# end of gimp-transform-3d-tool options diff --git a/2.10/tool-options/gimp-unified-transform-tool b/2.10/tool-options/gimp-unified-transform-tool new file mode 100644 index 0000000..754e366 --- /dev/null +++ b/2.10/tool-options/gimp-unified-transform-tool @@ -0,0 +1,6 @@ +# GIMP gimp-unified-transform-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) +(constrain-scale no) + +# end of gimp-unified-transform-tool options diff --git a/2.10/tool-options/gimp-vector-tool b/2.10/tool-options/gimp-vector-tool new file mode 100644 index 0000000..a51078d --- /dev/null +++ b/2.10/tool-options/gimp-vector-tool @@ -0,0 +1,10 @@ +# GIMP gimp-vector-tool options + +(background (color-rgb 0.94509803921568625 0.48627450980392156 0.23921568627450981)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(pattern "Pine") +(gradient "FG to BG (RGB)") +(palette "gaga-g") + +# end of gimp-vector-tool options diff --git a/2.10/tool-options/gimp-warp-tool b/2.10/tool-options/gimp-warp-tool new file mode 100644 index 0000000..e837f9e --- /dev/null +++ b/2.10/tool-options/gimp-warp-tool @@ -0,0 +1,4 @@ +# GIMP gimp-warp-tool options + + +# end of gimp-warp-tool options diff --git a/2.10/tool-options/gimp-zoom-tool b/2.10/tool-options/gimp-zoom-tool new file mode 100644 index 0000000..316363e --- /dev/null +++ b/2.10/tool-options/gimp-zoom-tool @@ -0,0 +1,4 @@ +# GIMP gimp-zoom-tool options + + +# end of gimp-zoom-tool options diff --git a/2.10/toolrc b/2.10/toolrc new file mode 100644 index 0000000..28f162e --- /dev/null +++ b/2.10/toolrc @@ -0,0 +1,185 @@ +# GIMP toolrc + +(file-version 1) + +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-move-tool") + (children + (GimpToolInfo "gimp-move-tool" + (icon-name "gimp-tool-move") + (visible yes)) + (GimpToolInfo "gimp-align-tool" + (icon-name "gimp-tool-align") + (visible yes)))) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-rect-select-tool") + (children + (GimpToolInfo "gimp-rect-select-tool" + (icon-name "gimp-tool-rect-select") + (visible yes)) + (GimpToolInfo "gimp-ellipse-select-tool" + (icon-name "gimp-tool-ellipse-select") + (visible yes)))) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-free-select-tool") + (children + (GimpToolInfo "gimp-free-select-tool" + (icon-name "gimp-tool-free-select") + (visible yes)) + (GimpToolInfo "gimp-iscissors-tool" + (icon-name "gimp-tool-iscissors") + (visible yes)) + (GimpToolInfo "gimp-foreground-select-tool" + (icon-name "gimp-tool-foreground-select") + (visible yes)))) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-by-color-select-tool") + (children + (GimpToolInfo "gimp-fuzzy-select-tool" + (icon-name "gimp-tool-fuzzy-select") + (visible yes)) + (GimpToolInfo "gimp-by-color-select-tool" + (icon-name "gimp-tool-by-color-select") + (visible yes)))) +(GimpToolInfo "gimp-crop-tool" + (icon-name "gimp-tool-crop") + (visible yes)) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-rotate-tool") + (children + (GimpToolInfo "gimp-unified-transform-tool" + (icon-name "gimp-tool-unified-transform") + (visible yes)) + (GimpToolInfo "gimp-rotate-tool" + (icon-name "gimp-tool-rotate") + (visible yes)) + (GimpToolInfo "gimp-scale-tool" + (icon-name "gimp-tool-scale") + (visible yes)) + (GimpToolInfo "gimp-shear-tool" + (icon-name "gimp-tool-shear") + (visible yes)) + (GimpToolInfo "gimp-flip-tool" + (icon-name "gimp-tool-flip") + (visible yes)) + (GimpToolInfo "gimp-perspective-tool" + (icon-name "gimp-tool-perspective") + (visible yes)) + (GimpToolInfo "gimp-transform-3d-tool" + (icon-name "gimp-tool-transform-3d") + (visible yes)) + (GimpToolInfo "gimp-handle-transform-tool" + (icon-name "gimp-tool-handle-transform") + (visible yes)))) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-warp-tool") + (children + (GimpToolInfo "gimp-warp-tool" + (icon-name "gimp-tool-warp") + (visible yes)) + (GimpToolInfo "gimp-cage-tool" + (icon-name "gimp-tool-cage") + (visible yes)))) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-bucket-fill-tool") + (children + (GimpToolInfo "gimp-bucket-fill-tool" + (icon-name "gimp-tool-bucket-fill") + (visible yes)) + (GimpToolInfo "gimp-gradient-tool" + (icon-name "gimp-tool-gradient") + (visible yes)))) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-paintbrush-tool") + (children + (GimpToolInfo "gimp-paintbrush-tool" + (icon-name "gimp-tool-paintbrush") + (visible yes)) + (GimpToolInfo "gimp-pencil-tool" + (icon-name "gimp-tool-pencil") + (visible yes)) + (GimpToolInfo "gimp-airbrush-tool" + (icon-name "gimp-tool-airbrush") + (visible yes)) + (GimpToolInfo "gimp-ink-tool" + (icon-name "gimp-tool-ink") + (visible yes)) + (GimpToolInfo "gimp-mypaint-brush-tool" + (icon-name "gimp-tool-mypaint-brush") + (visible yes)))) +(GimpToolInfo "gimp-eraser-tool" + (icon-name "gimp-tool-eraser") + (visible yes)) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-heal-tool") + (children + (GimpToolInfo "gimp-clone-tool" + (icon-name "gimp-tool-clone") + (visible yes)) + (GimpToolInfo "gimp-perspective-clone-tool" + (icon-name "gimp-tool-perspective-clone") + (visible yes)) + (GimpToolInfo "gimp-heal-tool" + (icon-name "gimp-tool-heal") + (visible yes)))) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-convolve-tool") + (children + (GimpToolInfo "gimp-smudge-tool" + (icon-name "gimp-tool-smudge") + (visible yes)) + (GimpToolInfo "gimp-convolve-tool" + (icon-name "gimp-tool-blur") + (visible yes)) + (GimpToolInfo "gimp-dodge-burn-tool" + (icon-name "gimp-tool-dodge") + (visible yes)))) +(GimpToolInfo "gimp-vector-tool" + (icon-name "gimp-tool-path") + (visible yes)) +(GimpToolInfo "gimp-text-tool" + (icon-name "gimp-tool-text") + (visible yes)) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-color-picker-tool") + (children + (GimpToolInfo "gimp-color-picker-tool" + (icon-name "gimp-tool-color-picker") + (visible yes)) + (GimpToolInfo "gimp-measure-tool" + (icon-name "gimp-tool-measure") + (visible yes)))) +(GimpToolInfo "gimp-zoom-tool" + (icon-name "gimp-tool-zoom") + (visible yes)) +(GimpToolInfo "gimp-brightness-contrast-tool" + (icon-name "gimp-tool-brightness-contrast") + (visible no)) +(GimpToolInfo "gimp-threshold-tool" + (icon-name "gimp-tool-threshold") + (visible no)) +(GimpToolInfo "gimp-levels-tool" + (icon-name "gimp-tool-levels") + (visible no)) +(GimpToolInfo "gimp-curves-tool" + (icon-name "gimp-tool-curves") + (visible no)) +(GimpToolInfo "gimp-offset-tool" + (icon-name "gimp-tool-offset") + (visible no)) +(GimpToolInfo "gimp-gegl-tool" + (icon-name "gimp-gegl") + (visible no)) + +# end of toolrc diff --git a/2.10/unitrc b/2.10/unitrc new file mode 100644 index 0000000..9883ee8 --- /dev/null +++ b/2.10/unitrc @@ -0,0 +1,51 @@ +# GIMP units +# +# This file contains the user unit database. You can edit this list with the +# unit editor. You are not supposed to edit it manually, but of course you +# can do. +# This file will be entirely rewritten each time you exit. + +(unit-info "centimeters" + (factor 2.54) + (digits 2) + (symbol "cm") + (abbreviation "cm") + (singular "centimeter") + (plural "centimeters")) +(unit-info "meters" + (factor 0.025399999999999999) + (digits 4) + (symbol "m") + (abbreviation "m") + (singular "meter") + (plural "meters")) +(unit-info "feet" + (factor 0.083333000000000004) + (digits 4) + (symbol "'") + (abbreviation "ft") + (singular "foot") + (plural "feet")) +(unit-info "yards" + (factor 0.027778000000000001) + (digits 4) + (symbol "yd") + (abbreviation "yd") + (singular "yard") + (plural "yards")) +(unit-info "typogr. points" + (factor 72.269999999999996) + (digits 0) + (symbol "tpt") + (abbreviation "tpt") + (singular "typogr. point") + (plural "typogr. points")) +(unit-info "typogr. picas" + (factor 6.0225) + (digits 1) + (symbol "tpc") + (abbreviation "tpc") + (singular "typogr. pica") + (plural "typogr. picas")) + +# end of units