blob: 040c1e52ac588aa259316ba7f1500f935342f9f1 [file] [log] [blame]
Jack Jansen9672e441993-01-20 15:10:05 +00001import sys
2import VFile
3import getopt
4import imgfile
5import string
6
7def main():
8 format = None
9 interval = 40
10 outfile = 'film.video'
11
12 try:
13 opts, args = getopt.getopt(sys.argv[1:], 'f:i:o:')
14 except getopt.error:
15 usage()
16 sys.exit(1)
17 for opt, arg in opts:
18 if opt == '-f':
19 format = arg
20 elif opt == '-i':
21 interval = string.atoi(arg)
22 elif opt == '-o':
23 outfile = arg
24 else:
25 usage()
26 sys.exit(1)
27 if not args:
28 usage()
29 sys.exit(1)
30
31 xsize, ysize, zsize = imgfile.getsizes(args[0])
32 nxsize = xsize
33
34 if not format:
35 if zsize == 3:
36 format = 'rgb'
37 elif zsize == 1:
38 format = 'grey'
39 if xsize % 4:
40 addbytes = 4-(xsize%4)
41 nxsize = xsize + addbytes
42 print 'rgb2video: add',addbytes,'pixels per line'
43 else:
44 print 'rgb2video: incorrect number of planes:',zsize
45 sys.exit(1)
46
47 vout = VFile.VoutFile().init(outfile)
48 vout.format = format
49 vout.width = nxsize
50 vout.height = ysize
51 vout.writeheader()
52 t = 0
53 sys.stderr.write('Processing ')
54 for img in args:
55 sys.stderr.write(img + ' ')
56 if imgfile.getsizes(img) <> (xsize, ysize, zsize):
57 print 'rgb2video: Image is different size:', img
58 sys.exit(1)
59 data = imgfile.read(img)
60 if xsize <> nxsize:
61 ndata = ''
62 for i in range(0,len(data), xsize):
63 curline = data[i:i+xsize]
64 ndata = ndata + curline + ('\0'*(nxsize-xsize))
65 data = ndata
66 vout.writeframe(t, data, None)
67 t = t + interval
68 sys.stderr.write('\n')
69 vout.close()
70
71def usage():
72 print 'Usage: rgb2video [-o output] [-i frameinterval] [-f format] rgbfile ...'
73
74main()
75