@@ -42,21 +42,25 @@ def load(file, header, *, bitmap=None, palette=None):
4242 # We have all we need at length 3
4343 if len (pnm_header ) == 3 :
4444 break
45- if len (pnm_header ) == 2 :
45+ if len (pnm_header ) == 2 and (
46+ magic_number .startswith (b"P1" ) or magic_number .startswith (b"P4" )
47+ ):
48+ bitmap = bitmap (pnm_header [0 ], pnm_header [1 ], 1 )
49+ if palette :
50+ palette = palette (1 )
51+ palette [0 ] = 0xFFFFFF
4652 if magic_number .startswith (b"P1" ):
4753 from . import pbm_ascii
4854
49- bitmap = bitmap (pnm_header [0 ], pnm_header [1 ], 1 )
5055 return pbm_ascii .load (
5156 file , pnm_header [0 ], pnm_header [1 ], bitmap = bitmap , palette = palette
5257 )
53- if magic_number .startswith (b"P4" ):
54- from . import pbm_binary
5558
56- bitmap = bitmap (pnm_header [0 ], pnm_header [1 ], 1 )
57- return pbm_binary .load (
58- file , pnm_header [0 ], pnm_header [1 ], bitmap = bitmap , palette = palette
59- )
59+ from . import pbm_binary
60+
61+ return pbm_binary .load (
62+ file , pnm_header [0 ], pnm_header [1 ], bitmap = bitmap , palette = palette
63+ )
6064
6165 next_byte = file .read (1 )
6266 if next_byte == b"#" :
@@ -85,15 +89,11 @@ def load(file, header, *, bitmap=None, palette=None):
8589 if magic_number .startswith (b"P2" ) or magic_number .startswith (b"P5" ):
8690 from . import pgm
8791
88- return pgm .load (
89- file , magic_number , pnm_header , bitmap = bitmap , palette = palette
90- )
92+ return pgm .load (file , magic_number , pnm_header , bitmap = bitmap , palette = palette )
9193
9294 if magic_number .startswith (b"P3" ) or magic_number .startswith (b"P6" ):
9395 from . import ppm
9496
95- return ppm .load (
96- file , magic_number , pnm_header , bitmap = bitmap , palette = palette
97- )
97+ return ppm .load (file , magic_number , pnm_header , bitmap = bitmap , palette = palette )
9898
9999 raise RuntimeError ("Unsupported image format" )
0 commit comments