rgb2video.py

来自「Python语言编译器」· Python 代码 · 共 80 行

PY
80
字号
import sysimport VFileimport getoptimport imgfileimport stringimport imgconvdef 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()		

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?