1 #! /ufs/guido/bin/sgi/python
3 # Copy a video file, interactively, frame-by-frame.
14 def report(time
, iframe
):
15 print 'Frame', iframe
, ': t =', time
18 sys
.stderr
.write('usage: Vcopy [-t type] [-m treshold] [-a] infile outfile\n')
19 sys
.stderr
.write('-t Convert to other type\n')
20 sys
.stderr
.write('-a Automatic\n')
21 sys
.stderr
.write('-m Convert grey to mono with treshold\n')
22 sys
.stderr
.write('-d Convert grey to mono with dithering\n')
26 print 'Command summary:'
27 print 'n get next image from input'
28 print 'w write current image to output'
30 class GrabbingVoutFile(VFile
.VoutFile
, VGrabber
.VGrabber
):
36 opts
, args
= getopt
.getopt(sys
.argv
[1:], 't:am:d')
37 except getopt
.error
, msg
:
43 print 'open film ', ifile
44 ifilm
= VFile
.VinFile(ifile
)
45 print 'open output ', ofile
46 ofilm
= GrabbingVoutFile(ofile
)
48 ofilm
.setinfo(ifilm
.getinfo())
61 if ifilm
.format
<> 'grey':
62 print '-m only supported for greyscale'
65 treshold
= string
.atoi(a
)
68 if ifilm
.format
<> 'grey':
69 print '-m only supported for greyscale'
76 prefsize(ifilm
.width
, ifilm
.height
)
82 print 'qdevice calls done'
86 time
, data
, cdata
= ifilm
.getnextframe()
87 ifilm
.showframe(data
, cdata
)
96 if dev
in (ESCKEY
, WINQUIT
, WINSHUT
):
115 if c
== 'w' or continuous
:
118 data
, cdata
= ofilm
.grabframe()
119 except VFile
.Error
, msg
:
123 data
= imageop
.grey2mono(data
, \
124 ifilm
.width
, ifilm
.height
, \
127 data
= imageop
.dither2mono(data
, \
128 ifilm
.width
, ifilm
.height
)
129 ofilm
.writeframe(time
, data
, cdata
)
130 print 'Frame', iframe
, 'written.'
131 if c
== 'n' or continuous
:
133 time
,data
,cdata
= ifilm
.getnextframe()
134 ifilm
.showframe(data
, cdata
)
142 elif dev
== INPUTCHANGE
:
145 print '(dev, val) =', (dev
, val
)