mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-25 17:36:18 +03:00
Comments/Docs, fixes #440
This commit is contained in:
parent
d05b5d9060
commit
4791d156f1
16
PIL/Image.py
16
PIL/Image.py
|
@ -1134,14 +1134,16 @@ class Image:
|
|||
"""
|
||||
Maps this image through a lookup table or function.
|
||||
|
||||
:param lut: A lookup table, containing 256 values per band in the
|
||||
image. A function can be used instead, it should take a single
|
||||
argument. The function is called once for each possible pixel
|
||||
value, and the resulting table is applied to all bands of the
|
||||
image.
|
||||
:param lut: A lookup table, containing 256 (or 65336 if
|
||||
self.mode=="I" and mode == "L") values per band in the
|
||||
image. A function can be used instead, it should take a
|
||||
single argument. The function is called once for each
|
||||
possible pixel value, and the resulting table is applied to
|
||||
all bands of the image.
|
||||
:param mode: Output mode (default is same as input). In the
|
||||
current version, this can only be used if the source image
|
||||
has mode "L" or "P", and the output has mode "1".
|
||||
has mode "L" or "P", and the output has mode "1" or the
|
||||
source image mode is "I" and the output mode is "L".
|
||||
:returns: An :py:class:`~PIL.Image.Image` object.
|
||||
"""
|
||||
|
||||
|
@ -1154,6 +1156,8 @@ class Image:
|
|||
# if it isn't a list, it should be a function
|
||||
if self.mode in ("I", "I;16", "F"):
|
||||
# check if the function can be used with point_transform
|
||||
# UNDONE wiredfool -- I think this prevents us from ever doing
|
||||
# a gamma function point transform on > 8bit images.
|
||||
scale, offset = _getscaleoffset(lut)
|
||||
return self._new(self.im.point_transform(scale, offset))
|
||||
# for other modes, convert the function to a table
|
||||
|
|
|
@ -17,3 +17,12 @@ def test_sanity():
|
|||
assert_no_exception(lambda: im.point(lambda x: x*1+1))
|
||||
assert_exception(TypeError, lambda: im.point(lambda x: x-1))
|
||||
assert_exception(TypeError, lambda: im.point(lambda x: x/1))
|
||||
|
||||
|
||||
def test_16bit_lut():
|
||||
""" Tests for 16 bit -> 8 bit lut for converting I->L images
|
||||
see https://github.com/python-imaging/Pillow/issues/440
|
||||
"""
|
||||
|
||||
im = lena("I")
|
||||
assert_no_exception(lambda: im.point(list(range(256))*256, 'L'))
|
||||
|
|
Loading…
Reference in New Issue
Block a user