示例#1
0
 def _make_header(cls, mode, size, depth=8):
     assert depth in (8, 16, 32), 'Invalid depth: %d' % (depth)
     color_mode = pil_io.get_color_mode(mode)
     alpha = int(mode.upper().endswith('A'))
     channels = ColorMode.channels(color_mode, alpha)
     return FileHeader(width=size[0],
                       height=size[1],
                       depth=depth,
                       channels=channels,
                       color_mode=color_mode)
示例#2
0
def _check_channels(channels, color_mode):
    expected_channels = ColorMode.channels(color_mode)
    if len(channels) > expected_channels:
        logger.warning('Channels mismatch: expected %g != given %g' %
                       (expected_channels, len(channels)))
        channels = channels[:expected_channels]
    elif len(channels) < expected_channels:
        raise ValueError('Channels mismatch: expected %g != given %g' %
                         (expected_channels, len(channels)))
    return channels
示例#3
0
def _check_channels(channels, color_mode):
    expected_channels = ColorMode.channels(color_mode)
    if len(channels) > expected_channels:
        # Seems possible when FilterMask is attached.
        logger.debug('Channels mismatch: expected %g != given %g' %
                     (expected_channels, len(channels)))
        channels = channels[:expected_channels]
    elif len(channels) < expected_channels:
        raise ValueError('Channels mismatch: expected %g != given %g' %
                         (expected_channels, len(channels)))
    return channels
示例#4
0
 def _make_header(cls, mode, size, depth=8):
     from .pil_io import get_color_mode
     assert depth in (8, 16, 32), 'Invalid depth: %d' % (depth)
     assert size[0] <= 300000, 'Width too large > 300,000'
     assert size[1] <= 300000, 'Height too large > 300,000'
     version = 1
     if size[0] > 30000 or size[1] > 30000:
         logger.debug('Width or height larger than 30,000 pixels')
         version = 2
     color_mode = get_color_mode(mode)
     alpha = int(mode.upper().endswith('A'))
     channels = ColorMode.channels(color_mode, alpha)
     return FileHeader(version=version,
                       width=size[0],
                       height=size[1],
                       depth=depth,
                       channels=channels,
                       color_mode=color_mode)