# SPIDER-PIL Spider 2D image

Extensions: None

From the Pillow docs:

PIL reads and writes SPIDER image files of 32-bit floating point data (“F;32F”).

PIL also reads SPIDER stack files containing sequences of SPIDER images. The `seek()` and `tell()` methods are supported, and random access is allowed.

The `write()` method sets the following attributes:

format

  Set to `SPIDER`

istack

  Set to 1 if the file is an image stack, else 0.

nimages

  Set to the number of images in the stack.

A convenience method, `convert2byte()`, is provided for converting floating point data to byte data (mode `L`):

    im = Image.open('image001.spi').convert2byte()

## Writing files in SPIDER format

The extension of SPIDER files may be any 3 alphanumeric characters. Therefore the output format must be specified explicitly:

    im.save('newimage.spi', format='SPIDER')

For more information about the SPIDER image processing package, see the SPIDER homepage at Wadsworth Center.

### Parameters for reading

pilmodestr

  From the Pillow documentation:

  - ‘L’ (8-bit pixels, grayscale)

  - ‘P’ (8-bit pixels, mapped to any other mode using a color palette)

  - ‘RGB’ (3x8-bit pixels, true color)

  - ‘RGBA’ (4x8-bit pixels, true color with transparency mask)

  - ‘CMYK’ (4x8-bit pixels, color separation)

  - ‘YCbCr’ (3x8-bit pixels, color video format)

  - ‘I’ (32-bit signed integer pixels)

  - ‘F’ (32-bit floating point pixels)

  PIL also provides limited support for a few special modes, including ‘LA’ (‘L’ with alpha), ‘RGBX’ (true color with padding) and ‘RGBa’ (true color with premultiplied alpha).

  When translating a color image to grayscale (mode ‘L’, ‘I’ or ‘F’), the library uses the ITU-R 601-2 luma transform:

      L = R * 299/1000 + G * 587/1000 + B * 114/1000

as_graybool

  If True, the image is converted using mode ‘F’. When mode is not None and as_gray is True, the image is first converted according to mode, and the result is then “flattened” using mode ‘F’.