Howto Extract PNG from binary file @ 0x80?

Robert Kern rkern at ucsd.edu
Mon Jan 3 20:21:38 EST 2005


flamesrock wrote:

[snip]

> flamesrock at flames:~/score$ python sc4png.py
> Traceback (most recent call last):
> File "sc4png.py", line 26, in ?
> pngcopy(infile, outfile)
> File "sc4png.py", line 14, in pngcopy
> size, cid = struct.unpack("!l4s", chunk)
> struct.error: unpack str size does not match format
> 
> Any ideas on how to fix it? If I understand this page correctly,
> http://www.python.org/doc/current/lib/module-struct.html
> a png is basically a 'big endian string of 14 chars'? Changing it to
> !14b" gives a"ValueError: unpack tuple of wrong size"
> -thanks in advance for any help

No, the chunk header is specified as "!l4s" where that second character 
is a lower-case "L", not one "1". The struct is "a 4-byte long integer 
in big-endian format followed by a 4-character string".

I think the error you are running into is that the chunk you are passing 
in does not have 8 characters. Is your input truncated somehow?

-- 
Robert Kern
rkern at ucsd.edu

"In the fields of hell where the grass grows high
  Are the graves of dreams allowed to die."
   -- Richard Harter



More information about the Python-list mailing list