3333__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad.git"
3434
3535
36- def load (f , header , * , bitmap = None , palette = None ):
36+ def load (file , header , * , bitmap = None , palette = None ):
3737 # Read the header
3838 magic_number = header [:2 ]
39- f .seek (2 )
39+ file .seek (2 )
4040 pnm_header = []
4141 while True :
4242 # We have all we need at length 3
4343 if len (pnm_header ) == 3 :
4444 break
45- if magic_number .startswith (b"P1" ) or magic_number .startswith (b"P4" ):
46- if len (pnm_header ) == 2 :
47- from . import pbm
45+ if len (pnm_header ) == 2 :
46+ if magic_number .startswith (b"P1" ):
47+ from . import pbm_ascii
48+ bitmap = bitmap (pnm_header [0 ], pnm_header [1 ], 1 )
49+ return pbm_ascii .load (file , pnm_header [0 ], pnm_header [1 ], bitmap = bitmap , palette = palette )
50+ if magic_number .startswith (b"P4" ):
51+ from . import pbm_binary
52+ bitmap = bitmap (pnm_header [0 ], pnm_header [1 ], 1 )
53+ return pbm_binary .load (file , pnm_header [0 ], pnm_header [1 ], bitmap = bitmap , palette = palette )
4854
49- return pbm .load (
50- f , magic_number , pnm_header , bitmap = bitmap , palette = palette
51- )
52-
53- next_byte = f .read (1 )
55+ next_byte = file .read (1 )
5456 if next_byte == b"#" :
5557 while True :
56- next_byte = f .read (1 )
58+ next_byte = file .read (1 )
5759 if not next_byte :
5860 raise RuntimeError ("Unsupported image format" )
5961 if next_byte == b"\n " :
@@ -64,7 +66,7 @@ def load(f, header, *, bitmap=None, palette=None):
6466 if not next_byte .isdigit ():
6567 break
6668 value += next_byte
67- next_byte = f .read (1 )
69+ next_byte = file .read (1 )
6870 if not next_byte :
6971 raise RuntimeError ("Unsupported image format" )
7072
@@ -78,14 +80,14 @@ def load(f, header, *, bitmap=None, palette=None):
7880 from . import pgm
7981
8082 return pgm .load (
81- f , magic_number , pnm_header , bitmap = bitmap , palette = palette
83+ file , magic_number , pnm_header , bitmap = bitmap , palette = palette
8284 )
8385
8486 if magic_number .startswith (b"P3" ) or magic_number .startswith (b"P6" ):
8587 from . import ppm
8688
8789 return ppm .load (
88- f , magic_number , pnm_header , bitmap = bitmap , palette = palette
90+ file , magic_number , pnm_header , bitmap = bitmap , palette = palette
8991 )
9092
9193 raise RuntimeError ("Unsupported image format" )
0 commit comments