16c3 intros

This commit is contained in:
Daniel Molkentin 2017-08-12 21:06:34 +02:00
parent 25dab6b81e
commit 2fbfeaccf9
3 changed files with 742 additions and 0 deletions

111
16c3/__init__.py Normal file
View file

@ -0,0 +1,111 @@
#!/usr/bin/python
import subprocess
import os.path
from renderlib import *
from easing import *
# URL to Schedule-XML
scheduleUrl = 'https://3st.be/~meise/downloads/16c3_schedule.xml'
# For (really) too long titles
titlemap = {
#
}
def bounce(i, min, max, frames):
if i == frames - 1:
return 0
if i <= frames/2:
return easeInOutQuad(i, min, max, frames/2)
else:
return max - easeInOutQuad(i - frames/2, min, max, frames/2)
def introFrames(parameters):
move=50
# 3 Sekunde Text Fadein
frames = 3*fps
for i in range(0, frames):
yield (
('textblock', 'style', 'opacity', "%.4f" % easeLinear(i, 0, 1, frames)),
('textblock', 'attr', 'transform', 'translate(%.4f, 0)' % easeOutQuad(i, -move, move, frames)),
)
# 2 Sekunden stehen lassen
frames = 2*fps
for i in range(0, frames):
yield ()
# 3 Sekunde Text Fadeout
frames = 3*fps
for i in range(0, frames):
yield (
('textblock', 'style', 'opacity', "%.4f" % easeLinear(i, 1, -1, frames)),
('textblock', 'attr', 'transform', 'translate(%.4f, 0)' % easeInQuad(i, 0, move, frames)),
)
def pauseFrames(parameters):
frames = 25*3
for i in range(0, frames):
yield (
('pause', 'attr', 'flood-opacity', '%.4f' % bounce(i, 0.0, 1.0, frames)),
)
frames = 25*1
for i in range(0, frames):
yield (
('glowFlood', 'attr', 'flood-opacity', '%.4f' % 0),
)
def outroFrames(p):
# 5 Sekunden stehen bleiben
frames = 5*fps
for i in range(0, frames):
yield []
def debug():
render(
'intro.svg',
'../intro.dv',
introFrames,
{
'$id': 4711,
'$title': "Long Long Long title is LONG",
'$personnames': 'Long Name of Dr. Dr. Prof. Dr. Long Long'
}
)
# render(
# 'pause.svg',
# '../pause.dv',
# pauseFrames
# )
#
render(
'outro.svg',
'../outro.dv',
outroFrames
)
def tasks(queue, args, idlist, skiplist):
# iterate over all events extracted from the schedule xml-export
for event in events(scheduleUrl):
if len(args) > 0:
if not str(event['id']) in args:
continue
# generate a task description and put it into the queue
queue.put(Rendertask(
infile = 'intro.svg',
outfile = str(event['id'])+".dv",
sequence = introFrames,
parameters = {
'$id': event['id'],
'$title': event['title'],
'$personnames': event['personnames']
}
))

303
16c3/artwork/intro.svg Normal file
View file

@ -0,0 +1,303 @@
<?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="720"
height="576"
viewBox="0 0 0 1052.3622"
id="svg3476"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="intro.svg">
<defs
id="defs3478" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="411.85731"
inkscape:cy="310.25482"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1920"
inkscape:window-height="1016"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1">
<sodipodi:guide
position="24.642857,141.42857"
orientation="1,0"
id="guide4399" />
<sodipodi:guide
position="388.92857,20.357143"
orientation="0,1"
id="guide12169" />
</sodipodi:namedview>
<metadata
id="metadata3481">
<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:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-476.36216)">
<rect
style="opacity:1;fill:#101077;fill-opacity:1;stroke:#ffdab9;stroke-width:0.20014016;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="title"
width="721.24878"
height="575.7868"
x="7.0111157e-05"
y="476.57526" />
<g
id="g4369"
transform="translate(-79.671342,81.766339)">
<g
id="g4360">
<g
id="g4352">
<g
id="g4345">
<g
id="g4339">
<g
id="g4334">
<g
id="g4330">
<g
id="g4327">
<image
y="809.67682"
x="97.233551"
id="image3512"
xlink:href="data:image/png;base64,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
"
preserveAspectRatio="none"
height="150"
width="250" />
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:Umpush;-inkscape-font-specification:Umpush;letter-spacing:0px;word-spacing:0px;fill:#ffe600;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="98.994949"
y="602.8443"
id="text4379"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4381"
x="98.994949"
y="602.8443" /></text>
<flowRoot
xml:space="preserve"
id="flowRoot4401"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:Umpush;-inkscape-font-specification:Umpush;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
transform="translate(0,476.36216)"><flowRegion
id="flowRegion4403"><rect
id="rect4405"
width="143.44167"
height="44.446712"
x="569.72601"
y="521.45178" /></flowRegion><flowPara
id="flowPara4407">C#</flowPara></flowRoot> <flowRoot
xml:space="preserve"
id="flowRoot4409"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:Umpush;-inkscape-font-specification:Umpush;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#ffe600;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
transform="translate(-5.0507627,500.60582)"><flowRegion
id="flowRegion4411"><rect
id="rect4413"
width="191.92902"
height="25.253798"
x="512.14734"
y="513.37061"
style="text-align:end;text-anchor:end;fill:#ffe600;fill-opacity:1" /></flowRegion><flowPara
id="flowPara4415"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:20px;line-height:125%;font-family:Umpush;-inkscape-font-specification:'Umpush, Bold';text-align:end;writing-mode:lr-tb;text-anchor:end">#$id</flowPara></flowRoot> <g
id="textblock">
<flowRoot
transform="translate(9.7654088,499.79696)"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:Umpush;-inkscape-font-specification:Umpush;letter-spacing:0px;word-spacing:0px;fill:#ffe600;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="person"
xml:space="preserve"><flowRegion
id="flowRegion4393"><rect
style="fill:#ffe600;fill-opacity:1"
y="21.426252"
x="12.121831"
height="114.49387"
width="618.40405"
id="rect4395" /></flowRegion><flowPara
id="flowPara12173"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:30px;line-height:125%;font-family:'Bitstream Vera Sans Mono';-inkscape-font-specification:'Bitstream Vera Sans Mono, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start">$personnames</flowPara></flowRoot> <flowRoot
inkscape:label="#title"
transform="translate(8,612.36216)"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:Umpush;-inkscape-font-specification:Umpush;letter-spacing:0px;word-spacing:0px;fill:#ffe600;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="flowRoot4417"
xml:space="preserve"><flowRegion
id="flowRegion4419"><rect
style="fill:#ffe600;fill-opacity:1"
y="25.466864"
x="13.390891"
height="150.84702"
width="663.41125"
id="rect4421" /></flowRegion><flowPara
id="flowPara4429"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:125%;font-family:'Bitstream Vera Sans Mono';-inkscape-font-specification:'Bitstream Vera Sans Mono, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start">$title</flowPara></flowRoot> </g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 17 KiB

328
16c3/artwork/outro.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 34 KiB