MCPcopy Create free account
hub / github.com/ActiveState/code / main

Function main

recipes/Python/189862_Image_extractor/recipe-189862.py:18–141  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

16imgmarker=[]
17
18def main():
19
20 if len(sys.argv) < 2:
21 print 'Usage: picdumper <file>\n'
22 sys.exit(1)
23
24 filename = os.path.abspath(sys.argv[1])
25
26 if not os.path.isfile(filename):
27 print 'Error: No such file ', filename
28 sys.exit(2)
29
30 #open file in binary mode
31 try:
32 infile = open(filename, 'rb')
33 #dont bother about specific exceptions
34 except:
35 print 'Could not open file to read !', filename
36 sys.exit(3)
37
38 if infile is None:
39 print 'Error opening file ', filename
40 sys.exit(3)
41
42 c = infile.read(1)
43
44 lastmatch=""
45 while c != '':
46
47 #look for image sig
48 for x in range(0, len(imgsigs)):
49
50 #find if c is first character of imgsig
51 sig=imgsigs[x]
52
53 if c == sig[0]:
54 #find if the rest of imgsig match
55 lentoread=len(sig) - 1
56 chunk=c + infile.read(lentoread)
57 #print chunk
58 #matches
59 if chunk==sig:
60 fpos=int(infile.tell())
61
62 #now we are at end of sig, for getting image
63 #pos we need to subtract length of sig and offset
64 sigpos=fpos - len(sig)
65 imgpos=sigpos - imgsigoffs[x]
66
67 #write position and image type to marker
68 imgmarker.append((imgpos, imgtypes[x]))
69 lastmatch=imgtypes[x]
70 else:
71 #bug, we need to reset file position
72 #to match other sigs correctly if this
73 #one does not.
74 currpos=int(infile.tell())
75 prevpos=currpos-lentoread

Callers 1

recipe-189862.pyFile · 0.70

Calls 12

rangeFunction · 0.85
strFunction · 0.85
isfileMethod · 0.80
openFunction · 0.50
exitMethod · 0.45
readMethod · 0.45
tellMethod · 0.45
appendMethod · 0.45
seekMethod · 0.45
lowerMethod · 0.45
writeMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected