Raw image sequence: Difference between revisions

From XPUB & Lens-Based wiki
(Created page with "<source lang="python"> import struct, sys width = 320 height = 240 header = struct.pack("<BBBHHBHHHHBB",0,0,2,0,0,8,0,0,width,height,32,1<<5) totalframes = 25 for frame in x...")
 
No edit summary
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
Following on from the [[Raw image]] example...
<source lang="python">
<source lang="python">
# rawimagesequence.py
import struct, sys
import struct, sys


Line 8: Line 11:
totalframes = 25
totalframes = 25
for frame in xrange(totalframes):
for frame in xrange(totalframes):
     out = open("out/frame%04d.tga" % frame, "wb")
     out = open("frame%04d.tga" % frame, "wb")
     out.write(header)
     out.write(header)


Line 26: Line 29:
     out.close()
     out.close()
</source>
</source>
python rawimagesequence.py
The outer loop of this script produces each of the 24 individual frames. Each frame has a different brightness calculated from full on (white) to full off (black). The frame variable is used to number the files using the special [http://docs.python.org/release/2.5.2/lib/typesseq-strings.html python string formatting operator] (%):
  print "hello%04d" % 23
  ==>
  hello0023
[[File:RawImageSequenceOutput.png]]
You can use [[Imagemagick]] (for instance) to convert this to an animated gif:
convert frame* fadetoblack.gif
[[File:fadetoblack.gif]]

Latest revision as of 13:39, 5 November 2013

Following on from the Raw image example...

# rawimagesequence.py
import struct, sys

width = 320
height = 240
header = struct.pack("<BBBHHBHHHHBB",0,0,2,0,0,8,0,0,width,height,32,1<<5)

totalframes = 25
for frame in xrange(totalframes):
    out = open("frame%04d.tga" % frame, "wb")
    out.write(header)

    for y in xrange(height):
        for x in xrange(width):
            r = (1.0-(float(frame)/totalframes))*255
            g = r
            b = r
            a = 255
     
            out.write(struct.pack('B', b))
            out.write(struct.pack('B', g))
            out.write(struct.pack('B', r))
            out.write(struct.pack('B', a))
    print r
 
    out.close()
python rawimagesequence.py

The outer loop of this script produces each of the 24 individual frames. Each frame has a different brightness calculated from full on (white) to full off (black). The frame variable is used to number the files using the special python string formatting operator (%):

 print "hello%04d" % 23
 ==>
 hello0023

RawImageSequenceOutput.png

You can use Imagemagick (for instance) to convert this to an animated gif:

convert frame* fadetoblack.gif

Fadetoblack.gif