summaryrefslogtreecommitdiffstats
path: root/plug-ins/pygimp/plug-ins/palette-offset.py
diff options
context:
space:
mode:
Diffstat (limited to 'plug-ins/pygimp/plug-ins/palette-offset.py')
-rw-r--r--plug-ins/pygimp/plug-ins/palette-offset.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/plug-ins/pygimp/plug-ins/palette-offset.py b/plug-ins/pygimp/plug-ins/palette-offset.py
new file mode 100644
index 0000000..8ba0bfe
--- /dev/null
+++ b/plug-ins/pygimp/plug-ins/palette-offset.py
@@ -0,0 +1,61 @@
+#!/usr/bin/env python2
+# -*- coding: utf-8 -*-
+# 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 <https://www.gnu.org/licenses/>.
+
+from gimpfu import *
+
+gettext.install("gimp20-python", gimp.locale_directory, unicode=True)
+
+def palette_offset(palette, amount):
+ #If palette is read only, work on a copy:
+ editable = pdb.gimp_palette_is_editable(palette)
+ if not editable:palette = pdb.gimp_palette_duplicate (palette)
+
+ num_colors = pdb.gimp_palette_get_info (palette)
+
+ tmp_entry_array = []
+ for i in xrange (num_colors):
+ tmp_entry_array.append ((pdb.gimp_palette_entry_get_name (palette, i),
+ pdb.gimp_palette_entry_get_color (palette, i)))
+ for i in xrange (num_colors):
+ target_index = i + amount
+ if target_index >= num_colors:
+ target_index -= num_colors
+ elif target_index < 0:
+ target_index += num_colors
+ pdb.gimp_palette_entry_set_name (palette, target_index, tmp_entry_array[i][0])
+ pdb.gimp_palette_entry_set_color (palette, target_index, tmp_entry_array[i][1])
+ return palette
+
+
+register(
+ "python-fu-palette-offset",
+ N_("Offset the colors in a palette"),
+ "palette_offset (palette, amount) -> modified_palette",
+ "Joao S. O. Bueno Calligaris, Carol Spears",
+ "(c) Joao S. O. Bueno Calligaris",
+ "2004, 2006",
+ N_("_Offset Palette..."),
+ "",
+ [
+ (PF_PALETTE, "palette", _("Palette"), ""),
+ (PF_INT, "amount", _("Off_set"), 1),
+ ],
+ [(PF_PALETTE, "new-palette", "Result")],
+ palette_offset,
+ menu="<Palettes>",
+ domain=("gimp20-python", gimp.locale_directory)
+ )
+
+main ()