Merge pull request #3717 from radarhere/ico_condition

Removed condition that was always true
This commit is contained in:
Hugo 2019-03-16 12:04:11 +02:00 committed by GitHub
commit 87ddd07359
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -105,53 +105,52 @@ class BmpImageFile(ImageFile.ImageFile):
# --------------------------------------------- Windows Bitmap v2 to v5 # --------------------------------------------- Windows Bitmap v2 to v5
# v3, OS/2 v2, v4, v5 # v3, OS/2 v2, v4, v5
elif file_info['header_size'] in (40, 64, 108, 124): elif file_info['header_size'] in (40, 64, 108, 124):
if file_info['header_size'] >= 40: # v3 and OS/2 file_info['y_flip'] = i8(header_data[7]) == 0xff
file_info['y_flip'] = i8(header_data[7]) == 0xff file_info['direction'] = 1 if file_info['y_flip'] else -1
file_info['direction'] = 1 if file_info['y_flip'] else -1 file_info['width'] = i32(header_data[0:4])
file_info['width'] = i32(header_data[0:4]) file_info['height'] = (i32(header_data[4:8])
file_info['height'] = (i32(header_data[4:8]) if not file_info['y_flip']
if not file_info['y_flip'] else 2**32 - i32(header_data[4:8]))
else 2**32 - i32(header_data[4:8])) file_info['planes'] = i16(header_data[8:10])
file_info['planes'] = i16(header_data[8:10]) file_info['bits'] = i16(header_data[10:12])
file_info['bits'] = i16(header_data[10:12]) file_info['compression'] = i32(header_data[12:16])
file_info['compression'] = i32(header_data[12:16]) # byte size of pixel data
# byte size of pixel data file_info['data_size'] = i32(header_data[16:20])
file_info['data_size'] = i32(header_data[16:20]) file_info['pixels_per_meter'] = (i32(header_data[20:24]),
file_info['pixels_per_meter'] = (i32(header_data[20:24]), i32(header_data[24:28]))
i32(header_data[24:28])) file_info['colors'] = i32(header_data[28:32])
file_info['colors'] = i32(header_data[28:32]) file_info['palette_padding'] = 4
file_info['palette_padding'] = 4 self.info["dpi"] = tuple(
self.info["dpi"] = tuple( map(lambda x: int(math.ceil(x / 39.3701)),
map(lambda x: int(math.ceil(x / 39.3701)), file_info['pixels_per_meter']))
file_info['pixels_per_meter'])) if file_info['compression'] == self.BITFIELDS:
if file_info['compression'] == self.BITFIELDS: if len(header_data) >= 52:
if len(header_data) >= 52: for idx, mask in enumerate(['r_mask',
for idx, mask in enumerate(['r_mask', 'g_mask',
'g_mask', 'b_mask',
'b_mask', 'a_mask']):
'a_mask']): file_info[mask] = i32(
file_info[mask] = i32( header_data[36 + idx * 4:40 + idx * 4]
header_data[36 + idx * 4:40 + idx * 4] )
) else:
else: # 40 byte headers only have the three components in the
# 40 byte headers only have the three components in the # bitfields masks, ref:
# bitfields masks, ref: # https://msdn.microsoft.com/en-us/library/windows/desktop/dd183376(v=vs.85).aspx
# https://msdn.microsoft.com/en-us/library/windows/desktop/dd183376(v=vs.85).aspx # See also
# See also # https://github.com/python-pillow/Pillow/issues/1293
# https://github.com/python-pillow/Pillow/issues/1293 # There is a 4th component in the RGBQuad, in the alpha
# There is a 4th component in the RGBQuad, in the alpha # location, but it is listed as a reserved component,
# location, but it is listed as a reserved component, # and it is not generally an alpha channel
# and it is not generally an alpha channel file_info['a_mask'] = 0x0
file_info['a_mask'] = 0x0 for mask in ['r_mask', 'g_mask', 'b_mask']:
for mask in ['r_mask', 'g_mask', 'b_mask']: file_info[mask] = i32(read(4))
file_info[mask] = i32(read(4)) file_info['rgb_mask'] = (file_info['r_mask'],
file_info['rgb_mask'] = (file_info['r_mask'], file_info['g_mask'],
file_info['g_mask'], file_info['b_mask'])
file_info['b_mask']) file_info['rgba_mask'] = (file_info['r_mask'],
file_info['rgba_mask'] = (file_info['r_mask'], file_info['g_mask'],
file_info['g_mask'], file_info['b_mask'],
file_info['b_mask'], file_info['a_mask'])
file_info['a_mask'])
else: else:
raise IOError("Unsupported BMP header type (%d)" % raise IOError("Unsupported BMP header type (%d)" %
file_info['header_size']) file_info['header_size'])