Python Imaging Library

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Python Imaging Library
Original authorFredrik Lundh
DeveloperSecret Labs AB
Initial release1995; 31 years ago (1995)[1]
Stable release
1.1.7 / November 15, 2009; 16 years ago (2009-11-15)[3]
Preview release
1.2a0[2] / 2011; 15 years ago (2011)
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inPython, C
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    TypeLibrary for image processing
    LicenseHistorical Permission Notice and Disclaimer[1]
    Websitepython-pillow.github.io
    Pillow
    Original authorJeffrey A. Clark (Alex)
    Initial release31 July 2010; 15 years ago (2010-07-31)[1]
    Stable release
    11.1.0 / January 2, 2025; 15 months ago (2025-01-02)[4]
    Repository
    • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Written inPython, C
    Engine
      Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
      TypeLibrary for image processing
      LicenseHistorical Permission Notice and Disclaimer[1]
      Websitepython-pillow.github.io

      Python Imaging Library is a free and open-source additional library for the Python programming language that adds support for opening, manipulating, and saving many different image file formats. It is available for Windows, Mac OS X and Linux. The latest version of PIL is 1.1.7, was released in September 2009 and supports Python 1.5.2–2.7.[3]

      Development of the original project, known as PIL, was discontinued in 2011.[2] Subsequently, a successor project named Pillow forked the PIL repository and added Python 3.x support.[5] This fork has been adopted as a replacement for the original PIL in Linux distributions including Debian[6] and Ubuntu (since 13.04).[7]

      Capabilities

      [edit | edit source]

      PIL offers several standard procedures for image manipulation. These include:

      • per-pixel manipulations,[8]
      • masking and transparency handling,
      • image filtering, such as blurring, contouring, smoothing, or edge finding,[9]
      • image enhancing, such as sharpening, adjusting brightness, contrast or color,[10]
      • adding text

      File formats

      [edit | edit source]

      Supported file formats include PPM, PNG, JPEG, GIF, TIFF, and BMP. PIL is extensible, allowing users to create custom decoders for any file format.[11]

      Programming examples

      [edit | edit source]
      import os
      from PIL import Image
      
      
      def convert_jpegs_to_pngs(folder_path):
          # Checks if the provided path is a folder
          if not os.path.isdir(folder_path):
              print(f"Error: {folder_path} is not a valid folder.")
              return
      
          # Iterates over all files in the folder
          for filename in os.listdir(folder_path):
              # Checks if the file has a .jpg or .jpeg extension
              if filename.lower().endswith(".jpg") or filename.lower().endswith(".jpeg"):
                  # Full path of the file
                  jpeg_path = os.path.join(folder_path, filename)
                  # Path for the converted file
                  png_path = os.path.join(folder_path, os.path.splitext(filename)[0] + ".png")
      
                  try:
                      # Opens the JPEG image
                      with Image.open(jpeg_path) as img:
                          # Converts and saves as PNG
                          img.save(png_path, "PNG")
                          print(f"Converted {jpeg_path} to {png_path}")
                  except Exception as e:
                      print(f"Error converting {jpeg_path}: {e}")
      

      References

      [edit | edit source]
      1. ^ a b c d Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
      2. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
      3. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
      4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
      5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
      6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
      7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
      8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
      9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
      10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
      11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
      [edit | edit source]