Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F112452778
mergegmov
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sat, May 10, 16:26
Size
3 KB
Mime Type
text/x-python
Expires
Mon, May 12, 16:26 (1 d, 15 h)
Engine
blob
Format
Raw Data
Handle
26086285
Attached To
rPNBODY pNbody
mergegmov
View Options
#!/usr/bin/env python
import
sys
import
os
import
string
import
getopt
import
math
from
pNbody
import
Movie
####################################################################################
def
version
():
####################################################################################
print
'version 1.0'
sys
.
exit
(
0
)
####################################################################################
def
help_message
():
####################################################################################
print
'''Usage : mergegmov -o output --nh=nh --nv=nv film1 film2 ...
Options: -h -- this help message
-o -- name of the output
--nh -- number of horizontal images
--nv -- number of vertical images
--help -- this help message
--version -- displays version
'''
sys
.
exit
(
0
)
####################################################################################
def
check_arguments
(
options
,
xarguments
):
####################################################################################
nh
=
1
nv
=
1
output
=
"out.mov"
for
a
in
options
[:]:
if
a
[
0
]
==
'-h'
:
help_message
()
if
a
[
0
]
==
'--help'
:
help_message
()
if
a
[
0
]
==
'--version'
:
version
()
if
a
[
0
]
==
'--info'
:
info
=
1
if
a
[
0
]
==
'--nh'
:
if
a
[
1
]
==
''
:
help_message
()
else
:
nh
=
a
[
1
]
continue
if
a
[
0
]
==
'--nv'
:
if
a
[
1
]
==
''
:
help_message
()
else
:
nv
=
a
[
1
]
continue
if
a
[
0
]
==
'-o'
:
if
a
[
1
]
==
''
:
help_message
()
else
:
output
=
a
[
1
]
continue
files
=
xarguments
return
nh
,
nv
,
output
,
files
####################################################################################
#
# MAIN
#
####################################################################################
try
:
options
,
xarguments
=
getopt
.
getopt
(
sys
.
argv
[
1
:],
'o:h'
,
[
'info'
,
'help'
,
'version'
,
'nh='
,
'nv='
])
except
getopt
.
error
:
help_message
()
sys
.
exit
(
0
)
# check arguments
nh
,
nv
,
output
,
films
=
check_arguments
(
options
,
xarguments
)
nh
=
int
(
nh
)
nv
=
int
(
nv
)
# check the number of films
if
nh
*
nv
!=
len
(
films
):
print
"nh and nv do not match the number of films"
sys
.
exit
()
# check that all films exists
for
film
in
films
:
if
(
os
.
path
.
exists
(
film
)
==
0
):
print
"Error : the file "
,
film
,
" do no not exist."
sys
.
exit
(
0
)
# open films
fs
=
[]
n
=
-
1
for
film
in
films
:
n
=
n
+
1
fs
.
append
(
Movie
.
Movie
(
film
))
fs
[
n
]
.
open
(
readall
=
1
)
if
n
>
0
:
if
(
fs
[
n
]
.
npic
!=
fs
[
0
]
.
npic
):
print
"films have not the same number of frames"
if
(
fs
[
n
]
.
numByte
!=
fs
[
0
]
.
numByte
):
print
"films have not the same width"
if
(
fs
[
n
]
.
numLine
!=
fs
[
0
]
.
numLine
):
print
"films have not the same height"
npic
=
fs
[
0
]
.
npic
numByte
=
nh
*
fs
[
0
]
.
numByte
numLine
=
nv
*
fs
[
0
]
.
numLine
headerlength
=
0
idx
=
[]
for
j
in
range
(
1
,
nv
+
1
):
for
i
in
range
(
1
,
nh
+
1
):
idx
.
append
((
i
,
j
))
# loop over the images
fo
=
Movie
.
Movie
(
output
)
fo
.
new
(
numByte
,
numLine
)
for
i
in
range
(
0
,
npic
-
1
):
print
i
,
'/'
,
npic
-
1
d
=
[]
for
j
in
range
(
len
(
fs
)):
d
.
append
(
fs
[
j
]
.
read_one
())
# read one frame in each film
data
=
''
for
iv
in
range
(
nv
):
for
k
in
range
(
fs
[
0
]
.
numLine
):
k1
=
k
*
fs
[
0
]
.
numByte
k2
=
k1
+
fs
[
0
]
.
numByte
for
ih
in
range
(
nh
):
data
=
data
+
d
[
idx
.
index
((
ih
+
1
,
iv
+
1
))][
k1
:
k2
]
fo
.
write_pic
(
fs
[
0
]
.
current_time
,
data
)
Event Timeline
Log In to Comment