Create CMIF-video file from SGI rgb images
This commit is contained in:
parent
09cbf9a7a6
commit
9672e44842
|
@ -0,0 +1,75 @@
|
|||
import sys
|
||||
import VFile
|
||||
import getopt
|
||||
import imgfile
|
||||
import string
|
||||
|
||||
def main():
|
||||
format = None
|
||||
interval = 40
|
||||
outfile = 'film.video'
|
||||
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], 'f:i:o:')
|
||||
except getopt.error:
|
||||
usage()
|
||||
sys.exit(1)
|
||||
for opt, arg in opts:
|
||||
if opt == '-f':
|
||||
format = arg
|
||||
elif opt == '-i':
|
||||
interval = string.atoi(arg)
|
||||
elif opt == '-o':
|
||||
outfile = arg
|
||||
else:
|
||||
usage()
|
||||
sys.exit(1)
|
||||
if not args:
|
||||
usage()
|
||||
sys.exit(1)
|
||||
|
||||
xsize, ysize, zsize = imgfile.getsizes(args[0])
|
||||
nxsize = xsize
|
||||
|
||||
if not format:
|
||||
if zsize == 3:
|
||||
format = 'rgb'
|
||||
elif zsize == 1:
|
||||
format = 'grey'
|
||||
if xsize % 4:
|
||||
addbytes = 4-(xsize%4)
|
||||
nxsize = xsize + addbytes
|
||||
print 'rgb2video: add',addbytes,'pixels per line'
|
||||
else:
|
||||
print 'rgb2video: incorrect number of planes:',zsize
|
||||
sys.exit(1)
|
||||
|
||||
vout = VFile.VoutFile().init(outfile)
|
||||
vout.format = format
|
||||
vout.width = nxsize
|
||||
vout.height = ysize
|
||||
vout.writeheader()
|
||||
t = 0
|
||||
sys.stderr.write('Processing ')
|
||||
for img in args:
|
||||
sys.stderr.write(img + ' ')
|
||||
if imgfile.getsizes(img) <> (xsize, ysize, zsize):
|
||||
print 'rgb2video: Image is different size:', img
|
||||
sys.exit(1)
|
||||
data = imgfile.read(img)
|
||||
if xsize <> nxsize:
|
||||
ndata = ''
|
||||
for i in range(0,len(data), xsize):
|
||||
curline = data[i:i+xsize]
|
||||
ndata = ndata + curline + ('\0'*(nxsize-xsize))
|
||||
data = ndata
|
||||
vout.writeframe(t, data, None)
|
||||
t = t + interval
|
||||
sys.stderr.write('\n')
|
||||
vout.close()
|
||||
|
||||
def usage():
|
||||
print 'Usage: rgb2video [-o output] [-i frameinterval] [-f format] rgbfile ...'
|
||||
|
||||
main()
|
||||
|
Loading…
Reference in New Issue