Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F86524254
gwrapimages.py
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
Mon, Oct 7, 00:39
Size
4 KB
Mime Type
text/x-python
Expires
Wed, Oct 9, 00:39 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
21436473
Attached To
rMTOOLS Mtools
gwrapimages.py
View Options
#!/usr/bin/env python
import
glob
import
os
import
sys
from
optparse
import
OptionParser
import
Image
####################################################################################
def
parse_options
():
####################################################################################
usage
=
"usage: %prog [options] file"
parser
=
OptionParser
(
usage
=
usage
)
parser
.
add_option
(
"-d"
,
"--dir"
,
action
=
"store"
,
dest
=
"dir"
,
type
=
"string"
,
default
=
"tmp"
,
help
=
"directory for png files"
)
parser
.
add_option
(
"--istart"
,
action
=
"store"
,
dest
=
"istart"
,
type
=
"int"
,
default
=
0
,
help
=
"first number of frame"
)
parser
.
add_option
(
"--ratio"
,
action
=
"store"
,
dest
=
"ratio"
,
type
=
"float"
,
default
=
None
,
help
=
"screen ratio"
)
parser
.
add_option
(
"--maxwidth"
,
action
=
"store"
,
dest
=
"maxwidth"
,
type
=
"int"
,
default
=
2000
,
help
=
"max image width"
)
(
options
,
args
)
=
parser
.
parse_args
()
if
len
(
args
)
==
0
:
if
not
options
.
only_film
:
print
"you must specify at least a filename"
sys
.
exit
(
0
)
return
args
,
options
####################################################################################
#
# MAIN
#
####################################################################################
files
,
options
=
parse_options
()
directory1
=
files
[
0
]
directory2
=
files
[
1
]
files1
=
glob
.
glob
(
"
%s
/*"
%
(
directory1
))
files2
=
glob
.
glob
(
"
%s
/*"
%
(
directory2
))
files1
.
sort
()
files2
.
sort
()
#if len(files1) != len(files2):
# raise "files in dir1 differents than in dir 2"
if
not
os
.
path
.
exists
(
options
.
dir
):
os
.
mkdir
(
options
.
dir
)
i
=
-
1
+
options
.
istart
n
=
len
(
files1
)
for
n
in
xrange
(
n
):
i
=
i
+
1
f1
=
files1
[
n
]
f2
=
files2
[
n
]
f3
=
"
%s
/
%08d
.png"
%
(
options
.
dir
,
i
)
nums
=
nums
=
"
%8d
/
%8d
"
%
(
i
,
n
)
print
"
%s
-->
%s
"
%
(
nums
,
f3
)
#os.system("convert +append %s %s %s"%(f1,f2,f3))
# left image
imgl
=
Image
.
open
(
f1
)
# right image
imgr
=
Image
.
open
(
f2
)
if
imgl
.
size
!=
imgr
.
size
:
raise
"Images must have the same shape !"
if
options
.
ratio
!=
None
:
# set the final size
w
=
imgl
.
size
[
0
]
h
=
imgl
.
size
[
1
]
f
=
options
.
ratio
*
float
(
h
)
/
float
(
w
)
dw
=
int
(
0.5
*
w
*
(
f
-
1
))
W
=
4
*
dw
+
2
*
w
size
=
(
W
,
h
)
# new image
img
=
Image
.
new
(
'RGB'
,
size
,
(
0
,
0
,
0
))
img
.
paste
(
imgl
,
(
dw
,
0
,
dw
+
w
,
h
))
img
.
paste
(
imgr
,
(
W
-
dw
-
w
,
0
,
W
-
dw
,
h
))
else
:
W
,
H
=
2
*
imgr
.
size
[
0
],
imgr
.
size
[
1
]
w
,
h
=
imgr
.
size
if
W
>
options
.
maxwidth
:
# mplayer limitation
W
=
options
.
maxwidth
f
=
float
(
options
.
maxwidth
)
/
(
2
*
imgr
.
size
[
0
])
newsize
=
(
int
(
imgr
.
size
[
0
]
*
f
),
int
(
imgr
.
size
[
1
]
*
f
))
imgr
=
imgr
.
resize
(
newsize
)
imgl
=
imgl
.
resize
(
newsize
)
W
,
H
=
2
*
imgr
.
size
[
0
],
imgr
.
size
[
1
]
w
,
h
=
imgr
.
size
# new image
img
=
Image
.
new
(
'RGB'
,
(
W
,
H
),
(
0
,
0
,
0
))
img
.
paste
(
imgr
,
(
0
,
0
,
w
,
h
))
img
.
paste
(
imgl
,
(
0
+
w
,
0
,
w
+
w
,
h
))
img
.
save
(
f3
)
Event Timeline
Log In to Comment