summaryrefslogtreecommitdiffstats
path: root/lib/Python/Lib/PIL/ImageMode.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Python/Lib/PIL/ImageMode.py')
-rw-r--r--lib/Python/Lib/PIL/ImageMode.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/lib/Python/Lib/PIL/ImageMode.py b/lib/Python/Lib/PIL/ImageMode.py
new file mode 100644
index 000000000..295069108
--- /dev/null
+++ b/lib/Python/Lib/PIL/ImageMode.py
@@ -0,0 +1,52 @@
+#
+# The Python Imaging Library.
+# $Id$
+#
+# standard mode descriptors
+#
+# History:
+# 2006-03-20 fl Added
+#
+# Copyright (c) 2006 by Secret Labs AB.
+# Copyright (c) 2006 by Fredrik Lundh.
+#
+# See the README file for information on usage and redistribution.
+#
+
+# mode descriptor cache
+_modes = {}
+
+
+##
+# Wrapper for mode strings.
+
+class ModeDescriptor:
+
+ def __init__(self, mode, bands, basemode, basetype):
+ self.mode = mode
+ self.bands = bands
+ self.basemode = basemode
+ self.basetype = basetype
+
+ def __str__(self):
+ return self.mode
+
+
+##
+# Gets a mode descriptor for the given mode.
+
+def getmode(mode):
+ if not _modes:
+ # initialize mode cache
+ from PIL import Image
+ # core modes
+ for m, (basemode, basetype, bands) in Image._MODEINFO.items():
+ _modes[m] = ModeDescriptor(m, bands, basemode, basetype)
+ # extra experimental modes
+ _modes["LA"] = ModeDescriptor("LA", ("L", "A"), "L", "L")
+ _modes["PA"] = ModeDescriptor("PA", ("P", "A"), "RGB", "L")
+ # mapping modes
+ _modes["I;16"] = ModeDescriptor("I;16", "I", "L", "L")
+ _modes["I;16L"] = ModeDescriptor("I;16L", "I", "L", "L")
+ _modes["I;16B"] = ModeDescriptor("I;16B", "I", "L", "L")
+ return _modes[mode]