intros/outro Münchner Amateurfunktagung 2018

This commit is contained in:
derchris 2018-03-10 16:41:45 +01:00
parent 41c5119887
commit 17536a75a7
7 changed files with 381 additions and 0 deletions

106
afu-tm18/__init__.py Normal file
View file

@ -0,0 +1,106 @@
#!/usr/bin/python3
from renderlib import *
from easing import *
# URL to Schedule-XML
scheduleUrl = 'http://data.c3voc.de/afu-tm18/schedule-afu-tm18.xml'
# For (really) too long titles
titlemap = {
}
def introFrames(p):
move=50
# 1/2 Sekunden stehen lassen
frames = 12
for i in range(0, frames):
yield (
('text', 'style', 'opacity', "%.4f" % 0),
('text', 'attr', 'transform', 'translate(%.4f, 0)' % 0),
)
# 3 Sekunde Text Fadein
frames = 3*fps
for i in range(0, frames):
yield (
('text', 'style', 'opacity', "%.4f" % easeLinear(i, 0, 1, frames)),
('text', 'attr', 'transform', 'translate(%.4f, 0)' % easeOutQuad(i, -move, move, frames)),
)
# 2 Sekunden stehen lassen
frames = 2*fps
for i in range(0, frames):
yield (
('text', 'style', 'opacity', "%.4f" % 1),
('text', 'attr', 'transform', 'translate(%.4f, 0)' % 0),
)
# 3 Sekunde Text Fadeout
frames = 3*fps
for i in range(0, frames):
yield (
('text', 'style', 'opacity', "%.4f" % easeLinear(i, 1, -1, frames)),
('text', 'attr', 'transform', 'translate(%.4f, 0)' % easeInQuad(i, 0, move, frames)),
)
# two final frames
for i in range(0, 2):
yield (
('text', 'style', 'opacity', "%.4f" % 0),
('text', 'attr', 'transform', 'translate(%.4f, 0)' % move),
)
def outroFrames(p):
# 5 Sekunden stehen bleiben
frames = 5*fps
for i in range(0, frames):
yield ()
def debug():
render(
'intro.svg',
'../intro.ts',
introFrames,
{
'$id': 1002,
'$title': 'Die Fakultät für Elektrotechnik und Informationstechnik stellt sich vor',
'$person': 'Prof. Hiebel'
}
)
render(
'outro.svg',
'../outro.ts',
outroFrames
)
def tasks(queue, args, idlist, skip):
# iterate over all events extracted from the schedule xml-export
for event in events(scheduleUrl):
if not (idlist==[]):
if 000000 in idlist:
print("skipping id (%s [%s])" % (event['title'], event['id']))
continue
if int(event['id']) not in idlist:
print("skipping id (%s [%s])" % (event['title'], event['id']))
continue
# generate a task description and put them into the queue
projectname = event['title']
queue.put(Rendertask(
infile = 'intro.svg',
outfile = str(event['id'])+".ts",
sequence = introFrames,
parameters = {
'$title': event['title'],
'$person': event['personnames']
}
))
# place a task for the outro into the queue
queue.put(Rendertask(
infile = 'outro.svg',
outfile = 'outro.ts',
sequence = outroFrames
))

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

178
afu-tm18/artwork/intro.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 93 KiB

BIN
afu-tm18/artwork/outro.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 KiB

View file

@ -0,0 +1,97 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1920"
height="1080"
viewBox="0 0 1920 1080"
id="svg2"
version="1.1"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="outro.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.49497475"
inkscape:cx="758.7871"
inkscape:cy="486.78961"
inkscape:document-units="px"
inkscape:current-layer="layer2"
showgrid="false"
units="px"
inkscape:window-width="1440"
inkscape:window-height="851"
inkscape:window-x="0"
inkscape:window-y="1"
inkscape:window-maximized="1"
inkscape:snap-bbox="true"
inkscape:snap-bbox-edge-midpoints="false"
inkscape:object-paths="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:measure-start="98.9949,1103.09"
inkscape:measure-end="0,0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="bg"
style="display:inline">
<image
sodipodi:absref="/Users/cgerbran/dev/intro-outro-generator/afu-tm18/artwork/afu-tagung.png"
xlink:href="afu-tagung.png"
y="0"
x="0"
id="image256"
preserveAspectRatio="none"
height="1080"
width="1920" />
<g
id="license"
transform="matrix(1.3743507,0,0,1.3743507,-36.018361,-145.95694)">
<image
sodipodi:absref="/Users/cgerbran/dev/intro-outro-generator/afu-tm18/artwork/cc.logo.large.png"
xlink:href="cc.logo.large.png"
y="475.75461"
x="284.88745"
id="image12460"
preserveAspectRatio="none"
height="77.120003"
width="323.20001" />
<image
sodipodi:absref="/Users/cgerbran/dev/intro-outro-generator/afu-tm18/artwork/by.large.png"
xlink:href="by.large.png"
y="475.961"
x="616.08746"
id="image12506"
preserveAspectRatio="none"
height="76.913628"
width="76.913628" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB