mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
| import sys
 | |
| import VFile
 | |
| import getopt
 | |
| import imgfile
 | |
| import string
 | |
| import imgconv
 | |
| 
 | |
| 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 zsize == 3:
 | |
| 		oformat = 'rgb'
 | |
| 	elif zsize == 1:
 | |
| 		oformat = '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)
 | |
| 
 | |
| 	if format == None:
 | |
| 		format = oformat
 | |
| 	cfunc = imgconv.getconverter(oformat, format)
 | |
| 
 | |
| 	vout = VFile.VoutFile(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, cfunc(data, nxsize, ysize), None)
 | |
| 		t = t + interval
 | |
| 	sys.stderr.write('\n')
 | |
| 	vout.close()
 | |
| 
 | |
| def usage():
 | |
| 	print 'Usage: rgb2video [-o output] [-i frameinterval] [-f format] rgbfile ...'
 | |
| 	
 | |
| main()
 | |
| 		
 | 
