ImageFile Module

The ImageFile module provides support functions for the image openand save functions.

In addition, it provides a Parser class which can be used to decodean image piece by piece (e.g. while receiving it over a network connection).This class implements the same consumer interface as the standard sgmlliband xmllib modules.

Example: Parse an image

  1. from PIL import ImageFile
  2.  
  3. fp = open("hopper.pgm", "rb")
  4.  
  5. p = ImageFile.Parser()
  6.  
  7. while 1:
  8. s = fp.read(1024)
  9. if not s:
  10. break
  11. p.feed(s)
  12.  
  13. im = p.close()
  14.  
  15. im.save("copy.jpg")

Parser

  • class PIL.ImageFile.Parser[源代码]
  • Incremental image parser. This class implements the standardfeed/close consumer interface.

返回:An image object.引发:IOError – If the parser failed to parse the image file eitherbecause it cannot be identified or cannot bedecoded.

  • feed(data)[源代码]
  • (Consumer) Feed data to the parser.

参数:data – A string buffer.引发:IOError – If the parser failed to parse the image file.

  • reset()[源代码]
  • (Consumer) Reset the parser. Note that you can only call thismethod immediately after you’ve created a parser; parserinstances cannot be reused.

PyDecoder

  • class PIL.ImageFile.PyDecoder[源代码]
  • Python implementation of a format decoder. Override this class andadd the decoding logic in the decode method.

See Writing Your Own File Decoder in Python

  • cleanup()[源代码]
  • Override to perform decoder specific cleanup

返回:None

  • decode(buffer)[源代码]
  • Override to perform the decoding process.

参数:buffer – A bytes object with the data to be decoded.If handles_eof is set, then buffer will be empty and self.fd_will be set.返回:A tuple of (bytes consumed, errcode).If finished with decoding return <0 for the bytes consumed.Err codes are from _ERRORS

  • init(args)[源代码]
  • Override to perform decoder specific initialization

参数:args – Array of args items from the tile entry返回:None

  • setas_raw(_data, rawmode=None)[源代码]
  • Convenience method to set the internal image from a stream of raw data

参数:

  1. - **data** Bytes to be set
  2. - **rawmode** The rawmode to be used for the decoder.If not specified, it will default to the mode of the image返回:

None

  • setfd(fd)[源代码]
  • Called from ImageFile to set the python file-like object

参数:fd – A python file-like object返回:None

  • setimage(im, extents=None)[源代码]
  • Called from ImageFile to set the core output image for the decoder

参数:

  1. - **im** A core image object
  2. - **extents** a 4 tuple of (x0, y0, x1, y1) defining the rectanglefor this tile返回:

None