adopted froscon2016 artwor for 2017

This commit is contained in:
Daniel Molkentin 2017-08-05 01:28:42 +02:00
parent c669bdddb4
commit 683224ef43
7 changed files with 2260 additions and 0 deletions

233
froscon2017/__init__.py Normal file
View file

@ -0,0 +1,233 @@
#!/usr/bin/python3
import subprocess
import os.path
from renderlib import *
from easing import *
import svg.path
# URL to Schedule-XML
scheduleUrl = 'https://programm.froscon.de/2016/schedule.xml'
# For (really) too long titles
titlemap = {
#
}
def introFrames(args):
xml = etree.parse('froscon2016/artwork/intro.svg').getroot()
pathstr = xml.find(".//*[@id='animatePath']").get('d')
frog = xml.find(".//*[@id='animatePath']").get('d')
path = svg.path.parse_path(pathstr)
init = path.point(0)
frames = int(0.5*fps)
for i in range(0, frames):
p = path.point(i / frames) - init
yield (
('animatePath', 'style', 'opacity', 0),
('date', 'style', 'opacity', 0),
)
frames = 3*fps
for i in range(0, frames):
p = path.point(i / frames) - init
yield (
('frog', 'attr', 'transform', 'translate(%.4f, %.4f)' % (p.real, p.imag)),
)
frames = int(0.5*fps)
for i in range(0, frames):
yield tuple()
frames = 1*fps
for i in range(0, frames):
yield (
('url', 'style', 'opacity', easeOutQuad(i, 1, -1, frames)),
('date', 'style', 'opacity', easeOutQuad(i, 0, 1, frames)),
)
frames = int(1.5*fps)
for i in range(0, frames):
yield (
('url', 'style', 'opacity', 0),
('date', 'style', 'opacity', 1),
('bar', 'style', 'opacity', easeLinear(i, 1, -1, frames)),
('title', 'style', 'opacity', easeLinear(i, 1, -1, frames)),
)
# frames = 1*fps
# for i in range(0, frames):
# yield (
# )
frames = int(0.5*fps)+1
for i in range(0, frames):
yield (
('bar', 'style', 'opacity', 0),
('title', 'style', 'opacity', 0),
)
def outroFrames(args):
xml = etree.parse('froscon2016/artwork/outro.svg').getroot()
pathstr = xml.find(".//*[@id='animatePath']").get('d')
frog = xml.find(".//*[@id='animatePath']").get('d')
path = svg.path.parse_path(pathstr)
init = path.point(0)
frames = int(0.5*fps)
for i in range(0, frames):
p = path.point(i / frames) - init
yield (
('animatePath', 'style', 'opacity', 0),
('license', 'style', 'opacity', 0),
)
frames = 3*fps
for i in range(0, frames):
p = path.point(i / frames) - init
yield (
('frog', 'attr', 'transform', 'translate(%.4f, %.4f)' % (p.real, p.imag)),
)
frames = int(0.5*fps)+1
for i in range(0, frames):
yield tuple()
frames = 1*fps
for i in range(0, frames):
yield (
('logo', 'style', 'opacity', easeLinear(i, 1, -1, frames)),
)
frames = 1*fps
for i in range(0, frames):
yield (
('logo', 'style', 'opacity', 0),
('license', 'style', 'opacity', easeLinear(i, 0, 1, frames)),
)
frames = 2*fps
for i in range(0, frames):
yield (
('logo', 'style', 'opacity', 0),
('license', 'style', 'opacity', 1),
)
frames = 1*fps
for i in range(0, frames):
yield (
('logo', 'style', 'opacity', 0),
('license', 'style', 'opacity', easeLinear(i, 1, -1, frames)),
)
frames = 1*fps
for i in range(0, frames):
yield (
('logo', 'style', 'opacity', 0),
('license', 'style', 'opacity', 0),
)
def pauseFrames(args):
frames = 2*fps
for i in range(0, frames):
yield (
('text1', 'style', 'opacity', 1),
('text2', 'style', 'opacity', 0),
)
frames = 1*fps
for i in range(0, frames):
yield (
('text1', 'style', 'opacity', easeLinear(i, 1, -1, frames)),
('text2', 'style', 'opacity', 0),
)
frames = 1*fps
for i in range(0, frames):
yield (
('text1', 'style', 'opacity', 0),
('text2', 'style', 'opacity', easeLinear(i, 0, 1, frames)),
)
frames = 2*fps
for i in range(0, frames):
yield (
('text1', 'style', 'opacity', 0),
('text2', 'style', 'opacity', 1),
)
frames = 1*fps
for i in range(0, frames):
yield (
('text1', 'style', 'opacity', 0),
('text2', 'style', 'opacity', easeLinear(i, 1, -1, frames)),
)
frames = 1*fps
for i in range(0, frames):
yield (
('text1', 'style', 'opacity', easeLinear(i, 0, 1, frames)),
('text2', 'style', 'opacity', 0),
)
def debug():
render('intro.svg',
'../intro.ts',
introFrames,
{
'$id': 1302,
'$title': 'VlizedLab - Eine Open Source-Virtualisierungslösung für PC-Räume',
'$subtitle': 'IT Automatisierung und zentrales Management mit SALT',
'$personnames': 'Thorsten Kramm'
}
)
render('outro.svg',
'../outro.ts',
outroFrames
)
render('pause.svg',
'../pause.ts',
pauseFrames
)
def tasks(queue, args):
# iterate over all events extracted from the schedule xml-export
for event in events(scheduleUrl):
if event['room'] not in ('Saal 1', 'Saal 3', 'Saal 4', 'Saal 5', 'Saal 6', 'Saal 7', 'Saal 8'):
print("skipping room %s (%s)" % (event['room'], event['title']))
continue
# generate a task description and put them into the queue
queue.put(Rendertask(
infile = 'intro.svg',
outfile = str(event['id'])+".ts",
sequence = introFrames,
parameters = {
'$id': event['id'],
'$title': event['title'],
'$subtitle': event['subtitle'],
'$personnames': event['personnames']
}
))
# place a task for the outro into the queue
queue.put(Rendertask(
infile = 'outro.svg',
outfile = 'outro.ts',
sequence = outroFrames
))
# place the pause-sequence into the queue
queue.put(Rendertask(
infile = 'pause.svg',
outfile = 'pause.ts',
sequence = pauseFrames
))

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 72 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 61 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 62 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 77 KiB

View file

@ -0,0 +1,179 @@
<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1024"
height="576"
id="svg2"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="overlay.svg">
<defs
id="defs4">
<mask
id="id6">
<linearGradient
y2="2.3961301"
x2="3.27019"
y1="1.96386"
x1="3.27019"
gradientUnits="userSpaceOnUse"
id="id7">
<stop
id="stop3128"
style="stop-opacity:1; stop-color:white"
offset="0" />
<stop
id="stop3130"
style="stop-opacity:0; stop-color:white"
offset="1" />
</linearGradient>
<rect
id="rect3132"
height="0.465563"
width="0.65544897"
y="1.94721"
x="2.9424601"
style="fill:url(#id7)" />
</mask>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="776.45601"
inkscape:cy="355.71948"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
showguides="true"
inkscape:guide-bbox="true"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:object-paths="true"
inkscape:snap-intersection-paths="true"
inkscape:object-nodes="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-midpoints="true"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-page="true"
inkscape:window-width="1920"
inkscape:window-height="993"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1">
<sodipodi:guide
orientation="0,1"
position="0,556"
id="guide3050" />
<sodipodi:guide
orientation="1,0"
position="1004,0"
id="guide3052" />
<sodipodi:guide
position="0,0"
orientation="0,1024"
id="guide3054" />
<sodipodi:guide
position="1024,0"
orientation="-576,0"
id="guide3056" />
<sodipodi:guide
position="1024,576"
orientation="0,-1024"
id="guide3058" />
<sodipodi:guide
position="0,576"
orientation="576,0"
id="guide3060" />
</sodipodi:namedview>
<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:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-476.36218)">
<g
style="opacity:0.8"
id="g3041"
transform="translate(663.5809,405.57883)">
<g
mask="none"
id="g3231"
style="fill:#00a2e1;fill-opacity:1;fill-rule:evenodd;stroke:none"
transform="matrix(89.999997,0,0,89.999997,8.29985,-83.44764)">
<path
class="fil0 str1"
d="m 3.27019,1.9359 c 0.231933,0 0.420024,0.188091 0.420024,0.420024 0,0.231933 -0.188091,0.420024 -0.420024,0.420024 -0.231933,0 -0.420024,-0.188091 -0.420024,-0.420024 0,-0.231933 0.188091,-0.420024 0.420024,-0.420024 z"
id="path3233"
style="fill:#00a2e1;fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
<path
id="path3235"
class="fil9"
d="m 3.27019,1.9359 c 0.231933,0 0.420024,0.188091 0.420024,0.420024 0,0.231933 -0.188091,0.420024 -0.420024,0.420024 -0.231933,0 -0.420024,-0.188091 -0.420024,-0.420024 0,-0.231933 0.188091,-0.420024 0.420024,-0.420024 z"
style="fill:#00a2e1;fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
</g>
<path
class="fil5"
d="m 315.16474,106.85195 c 2.01897,1.22319 0.94752,4.71717 1.5552,7.02108 0.3402,1.39113 0.8514,3.12516 -0.3411,4.27887 -1.11078,0.8595 -3.20598,0.7542 -3.66057,2.07711 -0.585,1.70289 1.05417,4.42449 3.34386,4.27536 2.84247,-0.7884 5.13072,-2.90304 7.1568,-4.95639 2.00511,-2.05191 1.33479,-3.66417 1.14417,-6.19974 -0.0854,-1.12887 0.9117,-2.54124 1.77552,-1.91763 1.85382,1.33902 -1.11897,4.37454 1.05588,4.95918 2.22623,0.5985 3.21695,-5.76216 5.28551,-3.13515 1.27557,1.61892 -3.69747,3.07521 -2.4615,4.51485 1.11366,1.20258 2.44206,-2.22345 4.49856,-0.98649 0.4068,0.2448 0.7335,0.8622 0.504,1.28484 -1.20582,2.2167 -4.01814,0.2844 -4.32495,2.09196 -0.3582,2.10753 4.57371,-0.1404 4.19814,2.61747 -0.4914,3.61062 -5.5152,-1.47015 -9.26891,0.6183 -3.71412,2.06613 -5.30325,6.47892 -9.16119,8.17866 -2.24181,0.9882 -4.22046,-1.35882 -6.32196,-1.96371 -0.504,3.40155 -2.74392,5.96484 -4.95855,8.41572 -1.97505,5.34258 10.9782,-1.51686 9.25551,4.83165 -1.09665,4.04154 -6.43788,2.44989 -9.80082,4.75758 -0.45,2.98026 2.10969,4.18464 4.18716,5.24412 3.28716,1.67598 0.92619,2.56428 0.1089,1.74258 -1.74897,-1.75851 -1.86309,-0.5004 -1.56618,-0.1692 1.18386,1.32165 0.4797,0.7515 2.89278,2.58237 1.28304,0.97335 0.0652,2.69892 -1.16433,1.92087 -1.79154,-1.81386 -2.16747,-3.73041 -3.16917,-3.41253 -1.34082,0.4851 0.8208,1.75959 1.63944,4.59315 0.7083,2.45088 -2.56284,2.7018 -2.32974,0.4797 0.2601,-2.4768 -0.7335,-4.02453 -1.31634,-3.99582 -0.7857,0.0386 0.7479,4.90815 -1.10691,4.73526 -1.75995,-0.1638 -0.8325,-3.18825 -0.7326,-3.53835 1.03041,-3.60036 0.432,-3.57309 -1.24866,-6.91938 -0.8496,-1.69299 -5.25546,-5.08572 -2.88,-6.58701 8.15778,-2.57598 -1.09098,-2.31165 -1.83294,-4.13361 -3.6e-4,-0.2871 -0.0276,-0.3033 -0.2763,-0.1593 -1.94877,0.2682 -6.34392,-7.87356 -4.49613,0.4797 -0.1125,2.80773 -5.25366,0.6885 -7.14474,0.7992 -3.73788,0.2178 -4.01382,-0.3141 -6.61644,2.37789 -0.2529,0.2619 -2.40876,2.5767 -3.43062,1.13454 -1.07721,-1.51938 3.90645,-2.62629 3.54717,-3.32577 -0.2664,-0.5193 -2.10366,-0.6057 -4.1184,0.8577 -1.80747,1.31283 -3.22587,-1.64592 -0.7488,-2.25747 2.86299,-0.7074 5.04747,0.5274 4.79727,-0.8766 -0.2259,-1.02681 -2.07315,-0.3942 -4.54005,-1.03851 -1.28835,-0.6759 -0.4032,-2.59335 1.08144,-1.96866 2.79144,1.17423 1.94634,0.8496 3.68289,1.21428 0.4347,0.0909 1.46763,-0.6363 -0.92979,-1.27206 -1.12041,-0.297 -1.53144,-2.78577 1.56366,-0.7767 1.95624,1.26954 4.27887,2.88387 6.63516,1.00413 0.3168,-4.06629 -3.73221,-7.89588 -0.7803,-10.86624 4.6368,-4.6665 5.17284,9.98118 8.81181,5.59917 1.01547,-3.14325 2.11536,-6.36489 4.80897,-8.50185 -1.57428,-1.51758 -4.59603,-2.05758 -4.86108,-4.49325 -0.4572,-4.19103 2.56995,-7.7733 2.50227,-12.02319 -0.068,-4.29516 -6.98031,-6.105866 -4.09887,-8.336336 2.20077,-1.70433 2.7198,3.691076 4.36608,2.326856 1.41201,-1.169636 -1.66752,-2.639066 -0.351,-4.791236 0.2511,-0.4104 0.94923,-0.4356 1.36485,-0.2061 2.09943,1.16253 -0.2034,4.02588 1.395,4.38912 1.8648,0.3501 0.6399,-4.68423 2.67948,-4.38948 3.30912,0.4779 -1.70325,4.51629 -0.0723,6.145106 1.59345,1.59129 2.73618,-2.501186 4.82247,-1.565096 0.97227,0.436496 0.2475,2.005826 -0.7731,2.496596 -2.29149,1.10232 -4.02273,1.32804 -4.79691,4.09041 -0.765,2.78154 -1.45278,5.82057 -0.7137,8.67618 1.01556,2.05758 4.19175,2.11572 5.37444,0.7587 0.91809,-1.05516 -0.2205,-2.81691 -0.0315,-4.20876 0.4032,-1.60938 2.16,-2.03418 3.53484,-2.43495 2.29923,-0.6255 4.78917,-3.30057 6.85845,-2.16351 z"
id="path3237"
style="fill:#ffffff;fill-rule:nonzero"
inkscape:connector-curvature="0" />
<ellipse
d="m 3.4273884,2.21737 c 0,0.00632 -0.00398,0.01144 -0.0089,0.01144 -0.00491,0 -0.0089,-0.00512 -0.0089,-0.01144 0,-0.00632 0.00398,-0.01144 0.0089,-0.01144 0.00491,0 0.0089,0.00512 0.0089,0.01144 z"
class="fil10"
cx="3.4184899"
cy="2.21737"
rx="0.0088984901"
ry="0.0114398"
id="ellipse3239"
sodipodi:cx="3.4184899"
sodipodi:cy="2.21737"
sodipodi:rx="0.0088984901"
sodipodi:ry="0.0114398"
style="fill:#75c5f0;fill-rule:evenodd"
transform="matrix(89.999997,0,0,89.999997,8.29985,-83.44764)" />
<circle
d="M 0.0141142,0 C 0.0141142,0.00779506 0.00779506,0.0141142 0,0.0141142 -0.00779506,0.0141142 -0.0141142,0.00779506 -0.0141142,0 c 0,-0.00779506 0.00631914,-0.0141142 0.0141142,-0.0141142 0.00779506,0 0.0141142,0.00631914 0.0141142,0.0141142 z"
class="fil10"
transform="matrix(-28.370879,-49.139908,-63.173518,36.473309,306.74168,110.79125)"
r="0.0141142"
id="circle3241"
cx="0"
cy="0"
sodipodi:cx="0"
sodipodi:cy="0"
sodipodi:rx="0.0141142"
sodipodi:ry="0.0141142"
style="fill:#75c5f0;fill-rule:evenodd" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 70 KiB