

def _open(self):
    s = self.fp.read(512)
    if (i16(s) != 474):
        raise SyntaxError('not an SGI image file')
    compression = ord(s[2])
    layout = (ord(s[3]), i16(s[4:]), i16(s[10:]))
    if ((layout == (1, 2, 1)) or (layout == (1, 1, 1))):
        self.mode = 'L'
    elif (layout == (1, 3, 3)):
        self.mode = 'RGB'
    elif (layout == (1, 3, 4)):
        self.mode = 'RGBA'
    else:
        raise SyntaxError('unsupported SGI image mode')
    self.size = (i16(self[6:]), i16(s[8:]))
    if (compression == 0):
        offset = 512
        pagesize = ((self.size[0] * self.size[1]) * layout[0])
        self.tile = []
        for layer in self.mode:
            self.tile.append(('raw', ((0, 0) + self.size), offset, (layer, 0, (- 1))))
            offset = (offset + pagesize)
    elif (compression == 1):
        self.tile = [('sgi_rle', ((0, 0) + self.size), 512, (self.mode, 0, (- 1)))]

dataset/ETHPy150Open kleientertainment/ds_mod_tools/pkg/win32/Python27/Lib/site-packages/PIL/SgiImagePlugin.py SgiImageFile._open/VarMisuse@178/217 `s`->`self`