mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-25 17:36:18 +03:00
Merge pull request #5316 from radarhere/modes
This commit is contained in:
commit
7785931f43
|
@ -45,6 +45,14 @@ This is now consistent with other IFDs, and must be accessed through
|
|||
These changes only affect :py:meth:`~PIL.Image.Image.getexif`, introduced in Pillow
|
||||
6.0. The older ``_getexif()`` methods are unaffected.
|
||||
|
||||
Image._MODEINFO
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
This internal dictionary has been deprecated by a comment since PIL, and is now
|
||||
removed. Instead, ``Image.getmodebase()``, ``Image.getmodetype()``,
|
||||
``Image.getmodebandnames()``, ``Image.getmodebands()`` or ``ImageMode.getmode()``
|
||||
can be used.
|
||||
|
||||
API Additions
|
||||
=============
|
||||
|
||||
|
|
|
@ -223,28 +223,7 @@ DECODERS = {}
|
|||
ENCODERS = {}
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# Modes supported by this version
|
||||
|
||||
_MODEINFO = {
|
||||
# NOTE: this table will be removed in future versions. use
|
||||
# getmode* functions or ImageMode descriptors instead.
|
||||
# official modes
|
||||
"1": ("L", "L", ("1",)),
|
||||
"L": ("L", "L", ("L",)),
|
||||
"I": ("L", "I", ("I",)),
|
||||
"F": ("L", "F", ("F",)),
|
||||
"P": ("P", "L", ("P",)),
|
||||
"RGB": ("RGB", "L", ("R", "G", "B")),
|
||||
"RGBX": ("RGB", "L", ("R", "G", "B", "X")),
|
||||
"RGBA": ("RGB", "L", ("R", "G", "B", "A")),
|
||||
"CMYK": ("RGB", "L", ("C", "M", "Y", "K")),
|
||||
"YCbCr": ("RGB", "L", ("Y", "Cb", "Cr")),
|
||||
"LAB": ("RGB", "L", ("L", "A", "B")),
|
||||
"HSV": ("RGB", "L", ("H", "S", "V")),
|
||||
# Experimental modes include I;16, I;16L, I;16B, RGBa, BGR;15, and
|
||||
# BGR;24. Use these modes only if you know exactly what you're
|
||||
# doing...
|
||||
}
|
||||
# Modes
|
||||
|
||||
if sys.byteorder == "little":
|
||||
_ENDIAN = "<"
|
||||
|
@ -290,7 +269,7 @@ def _conv_type_shape(im):
|
|||
return (im.size[1], im.size[0], extra), typ
|
||||
|
||||
|
||||
MODES = sorted(_MODEINFO)
|
||||
MODES = ["1", "CMYK", "F", "HSV", "I", "L", "LAB", "P", "RGB", "RGBA", "RGBX", "YCbCr"]
|
||||
|
||||
# raw modes that may be memory mapped. NOTE: if you change this, you
|
||||
# may have to modify the stride calculation in map.c too!
|
||||
|
|
|
@ -35,18 +35,28 @@ def getmode(mode):
|
|||
global _modes
|
||||
if not _modes:
|
||||
# initialize mode cache
|
||||
|
||||
from . import Image
|
||||
|
||||
modes = {}
|
||||
# core modes
|
||||
for m, (basemode, basetype, bands) in Image._MODEINFO.items():
|
||||
for m, (basemode, basetype, bands) in {
|
||||
# core modes
|
||||
"1": ("L", "L", ("1",)),
|
||||
"L": ("L", "L", ("L",)),
|
||||
"I": ("L", "I", ("I",)),
|
||||
"F": ("L", "F", ("F",)),
|
||||
"P": ("P", "L", ("P",)),
|
||||
"RGB": ("RGB", "L", ("R", "G", "B")),
|
||||
"RGBX": ("RGB", "L", ("R", "G", "B", "X")),
|
||||
"RGBA": ("RGB", "L", ("R", "G", "B", "A")),
|
||||
"CMYK": ("RGB", "L", ("C", "M", "Y", "K")),
|
||||
"YCbCr": ("RGB", "L", ("Y", "Cb", "Cr")),
|
||||
"LAB": ("RGB", "L", ("L", "A", "B")),
|
||||
"HSV": ("RGB", "L", ("H", "S", "V")),
|
||||
# extra experimental modes
|
||||
"RGBa": ("RGB", "L", ("R", "G", "B", "a")),
|
||||
"LA": ("L", "L", ("L", "A")),
|
||||
"La": ("L", "L", ("L", "a")),
|
||||
"PA": ("RGB", "L", ("P", "A")),
|
||||
}.items():
|
||||
modes[m] = ModeDescriptor(m, bands, basemode, basetype)
|
||||
# extra experimental modes
|
||||
modes["RGBa"] = ModeDescriptor("RGBa", ("R", "G", "B", "a"), "RGB", "L")
|
||||
modes["LA"] = ModeDescriptor("LA", ("L", "A"), "L", "L")
|
||||
modes["La"] = ModeDescriptor("La", ("L", "a"), "L", "L")
|
||||
modes["PA"] = ModeDescriptor("PA", ("P", "A"), "RGB", "L")
|
||||
# mapping modes
|
||||
for i16mode in (
|
||||
"I;16",
|
||||
|
|
Loading…
Reference in New Issue
Block a user