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
--
http://mail.python.org/mailman/listinfo/python-list