ImageFile Module

The ImageFile module provides support functions for the image open and save functions.

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

Example: Parse an image

from PIL import ImageFile

fp = open("hopper.pgm", "rb")

p = ImageFile.Parser()

while 1:
    s = fp.read(1024)
    if not s:
        break
    p.feed(s)

im = p.close()

im.save("copy.jpg")

Parser

class PIL.ImageFile.Parser[源代码]

Incremental image parser. This class implements the standard feed/close consumer interface.

close()[源代码]

(Consumer) Close the stream.

返回:An image object.
引发:IOError – If the parser failed to parse the image file either because it cannot be identified or cannot be decoded.
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 this method immediately after you’ve created a parser; parser instances cannot be reused.

PyDecoder

class PIL.ImageFile.PyDecoder[源代码]

Python implementation of a format decoder. Override this class and add 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
set_as_raw(data, rawmode=None)[源代码]

Convenience method to set the internal image from a stream of raw data

参数:
  • data – Bytes to be set
  • 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

参数:
  • im – A core image object
  • extents – a 4 tuple of (x0, y0, x1, y1) defining the rectangle for this tile
返回:

None