projects
/
fgen.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Allow other character after number in label (new frame ID)
[fgen.git]
/
fgen.sh
diff --git
a/fgen.sh
b/fgen.sh
index
64baf44
..
f50e000
100755
(executable)
--- a/
fgen.sh
+++ b/
fgen.sh
@@
-9,7
+9,8
@@
set -e
PROG_NAME=$(basename $0)
# Set default values
PROG_NAME=$(basename $0)
# Set default values
-main_layer="Layer 558"
+bg_layer_name="background"
+ref_layer_prefix="ref"
# Pour conversion vidéo:
fps=8
# Pour conversion vidéo:
fps=8
@@
-43,45
+44,30
@@
function get_size()
# Arg1: layer
function get_pos()
{
# Arg1: layer
function get_pos()
{
- cat ${layers} | grep "${1}" | ${SED} "s/.*geometry:[0-9]\+x[0-9]\+\(+[0-9]\+
[0-9]\+\)
/\1/g"
+ cat ${layers} | grep "${1}" | ${SED} "s/.*geometry:[0-9]\+x[0-9]\+\(+[0-9]\+
+[0-9]\+\),.*
/\1/g"
}
# Arg1: line
function get_label()
{
}
# Arg1: line
function get_label()
{
- frame=$(echo "${1}" | grep -e "label:.*," | ${SED} "s/label:\(.*\),.*/\1/g")
-
- if [ x"${frame}" = x"" ]; then
- echo ""
- return 1
- else
- echo "${frame}"
- return 0
- fi
+ local token
+ token=$(echo "${1}" | ${SED} "s/.*label:\(.*\),geometry.*/\1/g")
+ echo "${token}"
}
# Arg1: line
function get_frame_id()
{
}
# Arg1: line
function get_frame_id()
{
- frame=$(echo "${1}" | grep -e "label:[0-9]\+," | ${SED} "s/label:\([0-9]\+\),.*/\1/g")
-
- if [ x"${frame}" = x"" ]; then
- echo ""
- else
- echo "${frame}"
- fi
+ frame=$(echo "${1}" | grep -e "label:[0-9]\+" | ${SED} "s/.*label:\([0-9]\+\).*,geometry.*/\1/g")
+ echo "${frame}"
}
}
-# Arg1: l
abel
-function
is_skip_label
()
+# Arg1: l
ine
+function
get_scene_id
()
{
{
- skip=$(echo "${1}" | grep -e "A8_.*")
-
- if [ x"${skip}" = x"" ]; then
- return 1
- else
- return 0
- fi
+ local token
+ token=$(echo "${1}" | ${SED} "s/.*scene:\([0-9]\+\),.*/\1/g")
+ echo "${token}"
}
print_usage()
}
print_usage()
@@
-156,46
+142,46
@@
for tool in convert composite identify; do
done
if [ ${trames} -eq 1 ]; then
done
if [ ${trames} -eq 1 ]; then
- identify ${IM_OPS} -verbose -format "label:%l,geometry:%g\n" ${src} > ${layers}
+ # %s: scene number
+ identify ${IM_OPS} -verbose -format "scene:%s,label:%l,geometry:%g,\n" ${src} > ${layers}
- #
Ignore empty labels
:
+ #
Remove line(s) with empty label
:
${SED} -i -e /label:,.*/d ${layers}
# Extract global frame size:
${SED} -i -e /label:,.*/d ${layers}
# Extract global frame size:
- size=$(get_size "${
main_layer
}")
+ size=$(get_size "${
bg_layer_name
}")
- log_dbg "
CANVAS SIZE=
${size}"
+ log_dbg "
Background size:
${size}"
- # Create background frame:
- convert -size ${size} xc:none ${dest}/background.png
+ if [ x"${size}" = x"" ]; then
+ echo "Error: background layer not found"
+ exit 1
+ fi
- # Remove
first line (Layer 558)
:
- ${SED} -i -e
'1d'
${layers}
+ # Remove
background line
:
+ ${SED} -i -e
/label:${bg_layer_name},.*/d
${layers}
- # Will start at frame 2 at first loop iteration
- f=1
+ # Remove reference lines:
+ ${SED} -i -e /label:${ref_layer_prefix}.*/d ${layers}
+
+ # Create background frame:
+ convert -size ${size} xc:none ${dest}/background.png
nf=""
oldnf=""
files=""
while read l; do
nf=""
oldnf=""
files=""
while read l; do
- f=$((${f} + 1))
-
+ scene=$(get_scene_id "${l}")
label=$(get_label "${l}")
p=$(get_pos "${l}")
nf=$(get_frame_id "${l}")
label=$(get_label "${l}")
p=$(get_pos "${l}")
nf=$(get_frame_id "${l}")
- log_dbg "
Couche ${f
}"
+ log_dbg "
Layer ${scene
}"
log_dbg " nom: ${label}"
log_dbg " pos: ${p}"
log_dbg " nom: ${label}"
log_dbg " pos: ${p}"
- if is_skip_label "${label}"; then
- log_dbg " skip..."
- continue
- fi
-
- files="${files} -page ${p} ${src}[${f}]"
+ files="${files} -page ${p} ${src}[${scene}]"
if [ x"${nf}" != x"" ]; then
# Only check expected frame if oldnf is set...
if [ x"${nf}" != x"" ]; then
# Only check expected frame if oldnf is set...