How do I use the unpack function?
Gary Herron
gherron at islandtraining.com
Thu May 15 12:11:23 EDT 2008
Marlin Rowley wrote:
> All:
>
> I've got a script that runs really slow because I'm reading from a
> stream a byte at a time:
>
> // TERRIBLE
> for y in range( height ):
> for color in range(4):
> for x in range( width ):
> pixelComponent = fileIO.read(4)
> buffer = unpack("!f",pixelComponent) << unpacks ONE
> float, but we now can do something with that pixel component.
>
>
> I can speed this up dramatically if I did this:
>
> // MUCH FASTER
> for y in range( height ):
> for color in range(4):
> pixelComponent = fileIO.read(4*width) <<<<<<<<< GET a LOT more
> data from the stream into memory FIRST!!
> for x in range( width ):
> buffer = unpack( ?????? ) <<<< how do I get each float from
> the pixelComponent???
Just carve of the first four bytes of pixelComponent on each pass
through the loop, and unpack that.
for x in range(width):
fourbytes = pixelComponent[:4] # first 4 bytes
pixelComponent = pixelComponent[4:] # All but first four bytes
buffer = unpack("!f", fourbytes)
There are probably better ways overall, but this directly answers your
question.
Gary Herron
>
>
> -M
> ------------------------------------------------------------------------
> With Windows Live for mobile, your contacts travel with you. Connect
> on the go.
> <http://www.windowslive.com/mobile/overview.html?ocid=TXT_TAGLM_WL_Refresh_mobile_052008>
>
> ------------------------------------------------------------------------
>
> --
> http://mail.python.org/mailman/listinfo/python-list
More information about the Python-list
mailing list