Example #1
0
def PIL2NumPy(input):
    """Converts a PIL image to a Numeric array.
    
    Supported input image formats are:
        RGB
        L
        F
    """
    
    if not isinstance(input, PIL.Image.Image):
        raise TypeError, 'must be called with PIL.Image.Image!'
        
    # mode dictionary:
    # (pil_mode : (Numeric typecode, channels)
    mode_list = {
        "RGB" : (Numeric.UnsignedInt8, 3),
        "L"   : (Numeric.UnsignedInt8, 1),
        "F"   : (Numeric.Float32, 1)
        }
    
    if not mode_list.has_key(input.mode):
        raise ValueError, 'unknown or unsupported input mode'
    
    modes = mode_list[input.mode]    
    
    shape = (input.size[0], input.size[1], modes[1])
    
    result = Numeric.array_constructor(
        shape,
        modes[0],
        input.tostring()
        )

    return result
Example #2
0
def PIL2NumPy(input):
    """Converts a PIL image to a Numeric array.
    
    Supported input image formats are:
        RGB
        L
        F
    """

    if not isinstance(input, PIL.Image.Image):
        raise TypeError, 'must be called with PIL.Image.Image!'

    # mode dictionary:
    # (pil_mode : (Numeric typecode, channels)
    mode_list = {
        "RGB": (Numeric.UnsignedInt8, 3),
        "L": (Numeric.UnsignedInt8, 1),
        "F": (Numeric.Float32, 1)
    }

    if not mode_list.has_key(input.mode):
        raise ValueError, 'unknown or unsupported input mode'

    modes = mode_list[input.mode]

    if modes[1] > 1:
        shape = (input.size[1], input.size[0], modes[1])
    else:
        shape = (input.size[1], input.size[0])

    result = Numeric.array_constructor(shape, modes[0], input.tostring())

    return result