home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pypil112.zip / PIL-1.1.2.zip / Lib / site-packages / PIL / ImageEnhance.py < prev    next >
Text File  |  2001-05-03  |  1KB  |  50 lines

  1. #
  2. # The Python Imaging Library.
  3. # $Id$
  4. #
  5. # image enhancement classes
  6. #
  7. # For a background, see "Image Processing By Interpolation and
  8. # Extrapolation", Paul Haeberli and Douglas Voorhies.  Available
  9. # at http://www.sgi.com/grafica/interp/index.html
  10. #
  11. # History:
  12. #       96-03-23 fl     Created
  13. #
  14. # Copyright (c) Secret Labs AB 1997.
  15. # Copyright (c) Fredrik Lundh 1996.
  16. #
  17. # See the README file for information on usage and redistribution.
  18. #
  19.  
  20. import Image, ImageFilter
  21.  
  22. class _Enhance:
  23.     def enhance(self, alpha):
  24.         return Image.blend(self.degenerate, self.image, alpha)
  25.  
  26. class Color(_Enhance):
  27.     "Adjust image colour balance"
  28.     def __init__(self, image):
  29.         self.image = image
  30.         self.degenerate = image.convert("L").convert(image.mode)
  31.  
  32. class Contrast(_Enhance):
  33.     "Adjust image contrast"
  34.     def __init__(self, image):
  35.         self.image = image
  36.         mean = reduce(lambda a,b: a+b, image.convert("L").histogram())/256.0
  37.         self.degenerate = Image.new("L", image.size, mean).convert(image.mode)
  38.  
  39. class Brightness(_Enhance):
  40.     "Adjust image brightness"
  41.     def __init__(self, image):
  42.         self.image = image
  43.         self.degenerate = Image.new(image.mode, image.size, 0)
  44.  
  45. class Sharpness(_Enhance):
  46.     "Adjust image sharpness"
  47.     def __init__(self, image):
  48.         self.image = image
  49.         self.degenerate = image.filter(ImageFilter.SMOOTH)
  50.