1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| #
| # 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
| 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]
|
|