Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
I
ITKA203 Avoin kurssimateriaali
Manage
Activity
Members
Labels
Plan
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
ITKA203 kurssimateriaali
ITKA203 Avoin kurssimateriaali
Commits
1b1b93f8
Commit
1b1b93f8
authored
2 weeks ago
by
nieminen
Browse files
Options
Downloads
Patches
Plain Diff
Kurssilogoskriptin ikuinen raakile mukaan materiaalivarastoon.
parent
5e23f91c
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
tools_for_authors/skriptiesim.sh
+136
-0
136 additions, 0 deletions
tools_for_authors/skriptiesim.sh
with
136 additions
and
0 deletions
tools_for_authors/skriptiesim.sh
0 → 100644
+
136
−
0
View file @
1b1b93f8
#!/bin/sh
#
# Yksinkertainen esimerkkikomentojonotiedosto bash-kuorelle.
#
# Käyttää työkaluohjelmia kurssilogon tekemiseksi. Demonstroi
# muun muass seuraavia asioita:
#
# - perus-"eräajo"
# - yksinkertainen bash-skripti (ei muuttujia kummempia rakenteita)
# - unix-tiedostojärjestelmä, laitehakemisto /dev/
# - datan putkittaminen prosessilta toiselle '|'
# - tiedoston ohjaaminen syötteeksi prosessille '<'
# - vasteen ohjaaminen tiedostoksi (overwrite) '>'
# - muutamia apuohjelmia (isoja ja pieniä; perinteisiä ja erikoisempia)
# - jonkun satunnaisen päivän tarpeeseen tehty kokoelma one-linereita
#
# Ei tässä ehkä tähän tarkoitukseen mitään järkeä ole, mutta hiton
# hauska oli väsäillä :-).
#
# Grafiikkaa lienee useimmiten kätevintä tehdä hiirellä klikkailemalla
# ikkunoissa, mutta täytyy ymmärtää, että se on mahdollista myös
# muulla tavoin... Entäs, jos tällainen jostain syystä pitäisi tehdä
# tuhannelle eri taustakuvalle joka päivä kello 18:00. Kuka palkataan
# klikkailemaan, vai tehdäänkö sittenkin skripti?!
#
# Joskus halutaan automaattista tietojenkäsittelyä (ATK) ahkeran
# tyypin klikkailun (ATK) sijasta.
# Otettaisko kumminkin yksi argumentti... jo vuonna 2016(?).
# Ja fiksataan loppu skripti sen mukaisesti vuonna 2020(?)
# Ja napataan komentojonotiedosto versionhallintaan kurssimateriaalin osaksi 2025
if
[
$#
-lt
1
]
then
echo
"Usage:
$0
IMAGE"
echo
"Taustakuvan IMAGE kuvasuhteeksi oletetaan noin 2x1 eli pitkulainen vaakakuva."
exit
1
else
BGSRCIMG
=
"
$1
"
fi
# Gamma-korjauksen parametria voi säädellä tästä (pittäis olla argumentti muiden joukossa):
GAMMAVALUE
=
3
# ----------- Ensin tehdään logokuva vaiheittain.
# Bitsinnypläyskurssin logoon tarvitaan satunnaisia ykkösiä ja nollia!
#
# Unix-tiedostojärjestelmästä päästään käsiksi "tiedostoon" nimeltä
# /dev/urandom josta voidaan lukea ääretön määrä satunnaisia
# tavuja. Ryhdytään lukemaan laitteelta ja putkitetaan se
# apuohjelmille. Viimeinen lakkaa ottamasta vastaan, kun se on saanut
# 35 riviä dataa. Se mitä menee läpi, ohjataan tekstitiedostoon:
dd
if
=
/dev/urandom |
od
-An
-t
x1 |
fold
-w
3 |
\
awk
'/[0-7][:alnum:]/ {printf "0" } /[89a-f][:alnum:]/ {printf "1"}'
|
\
fold
-w
128 |
head
-35
>
rndbits.txt
# Sen jälkeen käytellään ImageMagick -ohjelmistopaketin palveluita
# komentoriviltä. Muodostetaan väliaikaisia kuvia ja koostetaan niistä
# lopullinen.
# Ensiksi satunnaiset bitit PNG-kuvaksi:
convert
-size
600x360 xc:white
-font
"Liberation-Mono"
\
-pointsize
12
-fill
black
-annotate
+0+0
"@rndbits.txt"
bits.png
# Fontit on kyl aikamoinen murheenkryyni.. mikä ny sitte olis ja pysyis..
# /usr/share/texlive/texmf-dist/fonts/type1/adobe/courier/pcrb8a.pfb
# /usr/share/texlive/texmf-dist/fonts/type1/urw/avantgar/uagd8a.pfb
convert
-size
600x200 xc:white
-fill
black
\
-gravity
center
-font
/usr/share/texlive/texmf-dist/fonts/type1/adobe/utopia/putb8a.pfb
\
-pointsize
125
-draw
"text 0,-48 'ITKA2030'"
\
-pointsize
50
-draw
"text 0,48 '-Käyttikset ynnä muuta-'"
\
+matte
\
textmask.png
#convert -compose Copy_Opacity \
convert
\
\(
bits.png
-colorize
55%
-swirl
13
\)
\
\(
textmask.png
\)
\
-compose
CopyOpacity
\
-composite
\
finalmask.png
convert
\
\(
\
-size
600x200
\
plasma:blue-navy
\
\(
xc:white finalmask.png
-compose
Over
-composite
-negate
\)
\
-compose
Copy_Opacity
-composite
\
\)
\
kurssilogo_eivarjoa.png
# Varjostus olis niinku tosi kiva juttu:
convert
\
kurssilogo_eivarjoa.png
\
\(
+clone
-background
purple
-shadow
20x1.5+4+6
\)
+swap
\
-background
none
-mosaic
\
\
kurssilogo.png
# ------------ Sitten yhdistetään edellä tehty logo taustakuvaan.
# Taustakuvan esikäsittely:
convert
$BGSRCIMG
-gamma
$GAMMAVALUE
-resize
740
-fill
'rgb(220,220,255)'
-colorize
50% tmp.png
# Gradienttivaalennus:
convert
-size
400x680 radial-gradient:black-grey
-rotate
90 gradientti.png
convert tmp.png
\
gradientti.png
\
-compose
overlay
\
-composite
taustakuva.jpg
# Yhdistäminen varjostettuun logoon:
convert
-size
1024x302 xc:white
\
taustakuva.jpg
-geometry
+370+0
-composite
\
kurssilogo.png
-geometry
+27+27
-composite
\
-blur
0.22x0.33
-quality
88
-interlace
Plane
\
otsikkorantu.jpg
# ------------- siinäpä se.
# Lopussa voitaisiin poistaa väliaikaiset tiedostot, mutta jätetään ne nyt...
# Oikeasti tehtäisiin väliaikainen hakemisto /tmp/:n alle ylipäätään.
# Siinä omat kommervenkkinsä saada kuntoon. Ehkä jonakin vuonna...
#
# rm textmask.png finalmask.png tmp.png
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment