college 4 IUW Multimedia

Transcription

college 4 IUW Multimedia
Deel I: Multimedia
Deel 2: Server Side
Technology
IUW
Thema Web
19 november 2015
Christof van Nimwegen
Huishoudelijk: Procesbeschrijvingen

Het beschrijft het proces wat je als team
doorloopt (de ondernomen acties, planning of
afwijkingen hiervan, wat opgeleverd is, …).

Beschrijf alle genummerde eisen van de 2
opdrachten in je proces beschrijving zodanig dat
ze gemakkelijk en puntsgewijs hierin terug te
vinden zijn.
2
Opdracht Trust Opdracht
Basic Web Skills Opdracht
Huishoudelijk: Procesbeschrijvingen
3
Huishoudelijk: Procesbeschrijvingen

http://www.cs.uu.nl/docs/vakken/b1iuw/opdrachten.html
 Eén voor Opdracht Basic Web Skills (deadline 03-12-15)




Eén voor Opdracht Trust (deadline 21-01-16)
Plaats NU beiden (voor zover ingevuld) online. Doe dit
secuur: download de 2 templates en kopieer ze precies met
de naam die ze al hebben naar je server ruimte, zodat:
http://www.students.science.uu.nl/~1234567/formatprocesbeschrijving-opdracht-trust%202015-2016.docx
http://www.students.science.uu.nl/~1234567/formatprocesbeschrijving-opdracht-basic-web-skills-1.docx
4
Huishoudelijk:

Deadline 1 Trust 26-11





Inleveren: per mail naar [email protected]
De 3 onderdelen in één document!:
[teamnaam]-[studentassistent]-trust1.doc
Vermeld WEL studentnamen-nummer IN document
En: Er staat een PDF met Trust testmateriaal online!
5
Deel 1: Multimedia: Wat is het?
6
Graphics
7
Graphics: Digitaal op het web
Twee typen:

Bitmap (raster)


afbeelding als verzameling pixels
Vector graphics

afbeelding als verzameling
geometrische vormen
8
Graphics: Bitmaps zijn pixels!

Een pixel wordt opgeslagen als binaire code die een kleur representeert

Hoe meer kleur per pixel, en hoe groter het bestand

Een bitmap heeft (eigenlijk) geen fysieke dimensie

Een bitmap heeft wel een pixel-dimensie
9
Graphics: Bitmaps zijn pixels
Ministeck?
Graphics: Lijnen
Een rechte lijn…..
Bestaat als concept wel, en ook op papier,
maar in het geval van pixels kan het niet
altijd
Anti-Aliasing
Een techniek, om toch mooie graphics te
krijgen bij een lagere resolutie. Bijvoorbeeld
bij een lijn zie je op de computer vaak
zogenaamde "trapjes". Door naast deze
trapjes een tussen kleur te zetten lijkt het
trapjes effect minder erg.
Graphics: beeld bewerking

Bewerking waarbij voor elke pixel een nieuwe waarde
berekend wordt
Graphics: beeld bewerking - negatief
Originele afbeelding
Negatief f(p) = Wit - p
Graphics: beeld bewerking - helderheid
Originele afbeelding
Minder helder (per pixel)
Graphics: Pixel point processing- contrast
Originele afbeelding
Hoger contrast
Graphics: Hoe betrouwbaar is het oog?
Graphics: Kleur “erbij verzinnen”
Graphics: Gestalt principes



Ontwikkeld 1e helft 20e
eeuw (Max Wertheimer)
Ordening waargenomen
eenheden tot grotere
gehelen
Gestalt en Web design:

http://www.usabilityweb.nl/
2006/05/gestaltpsychologie
-en-webdesign/
voor- en achtergrond
gelijkenis
nabijheid
18
Graphics: Gestalt-Prägnanz
Simpele dingen zien we het eerst (willen we het eerst zien)!!
Graphics: Gestalt principes
continuïteit
voor- en achtergrond
gelijkenis
geslotenheid
nabijheid
20
Graphics: Kleur
Graphics: Kleurenblindheid
8 % van de mannen, 0.5% van de vrouwen
Graphics: The power of color
Graphics: Kleur in websites
24
Graphics: Kleur in websites
25
Graphics: Kleur in websites
26
Graphics: belang web kleur, bv. online editing
Graphics: Kleur

RGB (red, green, blue) zijn de
additieve primaire kleuren




kleuren van lichtbronnen
pixelkleuren bestaan uit een mix hiervan
schermkleuren gespecificeerd met drie waarden
Gebruikelijk: 1 byte per kleur



range per kleur: 0,255
16,8 miljoen kleuren
mens kan er ongeveer 10 miljoen onderscheiden
28
Graphics: RGB




Op licht gebaseerd
3 additive primaire kleuren
Rood + Groen + Blauw = Wit
Elke mix van 2 is “lichter” dan de losse kleur
Graphics: Direct color vs. Indexed color

Direct:
RGB direct naar
electrons
 255*255*255
: 16.581.375
kleuren

Indexed: met een Palet
CLUT: Color Lookup Table
 Bv. Gif

Graphics: Dithering - suggereren van kleur


Er moet uitgerekend worden welke
combinatie van het beperkte kleurenpalet de
oorspronkelijke kleur kan weergeven.
Stel dat een grijs kleur getoond zou moeten
worden, dan is na dithering de kleuren wit en
zwart dicht tegen elkaar aan gezet, waardoor
het grijs lijkt.
Graphics: Dithering met kleur
Graphics: Kleurdiepte
Het aantal beschikbare kleuren (per pixel) en dus in mijn beeld






1 bit 2¹
2 bit 2²
......
8 bit
16 bit
24 bit
(2 kleuren)
(4 kleuren
(256 kleuren)
(65.536 kleuren)
(> 16.000.000)
True color (3 kanalen van 256)
Graphics: Kleurdiepte

Monochrome graphics 1-bit pixel diepte.
(puur zwart - wit)
Graphics: Kleurdiepte

Grijswaarden graphics: meer pixel diepte (bv 4bit, 16 kleuren)
(alleen wit, grijstinten en zwart)
Graphics: Kleurdiepte

8 bits per pixel: 256 kleuren
Graphics: Kleurdiepte

24 bits per pixel: miljoenen kleuren
Graphics: Bitmap beeldformaten


GIF (compuserve) slechts 256 kleuren, transparantie voor 1
kleur, prima voor simpele afbeeldingen. Lost het ‘rectangular’
probleem deels op, zijn beperkt animeerbaar (animated gif)
JPEG goed met foto’s, kleine files

PNG kwam als alternatief voor GIF, vele kleuren, vaak
ondersteund door browsers, steeds meer gebruikt

Buiten web:

Bitmaps: TIFF, BMP, TGA
Graphics: Compressie
 Waarom?
 Bandbreedte, Opslag
 Lossless compressie
 Geen verlies. Het bestand (beeld) kan exact gereconstrueerd worden
 Omkeerbaar. Bekendste voorbeeld: ZIP
 Essentieel in Medische beeldbestanden, Archivering, software)
 Lossy compressie
 Wanneer informatie-verlies geen probleem is.
 Vaak effectiever dan lossless
 Onomkeerbaar. bekendste voorbeeld: JPEG
Graphics: Lossless compression



Runlength encoding (RLE), puur sequentieel
IPV 12x12 = 144 pixelwaardes:
Analyseer opeenvolging van dezelfde waarden
Nu nog maar 37x pixelwaardes!
Graphics: Lossless compression

LZW: dictionary based
Graphics: Lossy compression - JPEG

Lossles kan eigenlijk met alles / lossy niet: Er wordt data weggehaald
Bekijkt de afbeelding iets meer zoals een mens het zou beschrijven,
kijkende naar gebieden, patronen en kleuren. Informatie uit hoge
frequenties minder belangrijk voor perceptie


Is goed met een groot scala aan en verloop van kleuren
Behaalt goede compressieresultaten, kleine files….(vaak tot 5%)
….Maar is nooit 100% reconstrueerbaar

….Goed oppassen met compression artefacts


Graphics: Vectorafbeeldingen

Een geometrische definitie:
coordinaten-beschrijving

Voordelen:





Goed resizable: resolutie onafhankelijk
Kleine files
Vrije vorm: geen achtergrond
Geschikt voor gebruik bij animaties
Nadelen:



Slecht voor fotorealistiche afbeeldingen,
is cartoon-achtig
Kan niet zonder meer op webpagina
Minder effecten mogelijk
Graphics: Vectoren zijn niet goed voor foto’s
Graphics: Vector afbeelingen


moeten uiteindelijk naar pixels worden vertaald
probleem: eindige grootte pixels


als je een lijn tekent, wordt die hakkelig
oplossing: anti-aliasing (browser-taak!)

voeg grijstinten (overgangstinten) toe
45
Graphics: Vector images - SVG

Scalable Vector
Graphics



W3C recommendation
Steeds beter
ondersteund
Bv voor diagrammen
46
Graphics: Vector afbeeldingen (Fonts)
47
Graphics: Resumerend Vector vs Bitmap
Resizing Bitmap
Resizing Vector
Vrij vs rechthoekig
Audio, video en animatie op het web
49
Audio: formaten

Ongecomprimeerd


Lossless compressie


WAV, AIFF, ….
Lossless WMA
Lossy Compression

Lossy WMA, MP3, Vorbis, AAC, others
50
Audio: MP3

Fraunhofer IIS (http://www.iis.fraunhofer.de)
MPEG: Groep audio- /
videoprofessionals die de
standaard samenstellen

Layer: Mate van
complexiteit van de
compressie
Muziek delen via internet
 Voorheen MP3 sites, later P2P netwerken, en Itunes
 Kleinere bestanden sneller verzonden
Audio: MP3
Perceptuele compressie: maakt gebruik van karakteristieken menselijk oor




Minimum gehoordrempel:
Zachte geluiden worden niet geheel
verwijderd, maar ze hoeven er ook niet
zo nauwkeurig op te staan als de
hardere geluiden.
Masking: Op basis van het principe dat
onze oren geen zachte geluiden
kunnen horen op het moment dat er
een harder geluid klinkt dat erop lijkt.
Joint stereo: Bezuinigen op bitratio
door te veronderstelt links en rechts
vele identieke frequenties > als mono
gecodeerd
Huffman coding veel voorkomende
“geluiden: krijgen kortere bitcodes
(lossless, niet perceptueel)
Video


Registratie van de
beweging in de
werkelijkheid
Sequentie van
afzonderlijke beelden
(still images, stills)
vastgelegd in frames
(24 beelden per
seconde)
53
Video: formaten op WWW







FLV (Flash Video)
WMV (Windows Media Video)
MPEG-4
MOV (Quicktime)
Shockwave
RV (RealVideo…)
…others, more offline (AVI, MKV, ASF..)
54
Video compressie:


Niet: 24 keer een jpeg comprimeren 
Gebruikt redundantie
 veel overlap tussen opeenvolgende beelden
 inter-frame compressie slaat verschillen tussen frames
op
 zwarte pixels: waarde 0 => efficiënte compressie
 Inder frames
 Zoals bij JPEG: maak gebruik van kennis over
menselijke perceptie
 Ook hier geluid comprimeren
55
Video: Compressie met MPEG
Difference frame, compressie door opslaan verschil
Animatie






Menu’s
Transities?
Cartoons letterlijk
Reclame
Games on the web
……
57
Animatie



beweging
simuleren
snel achter elkaar
tonen van een
serie afbeeldingen
(frames)
elk frame toont een
afzonderlijke fase
van de beweging
http://webdesignbook.org/Book/Chapters/Examples/6.html
58
Animatie
59
Animatie

Animatie
 frames → beweging
 kunstmatig geproduceerd

Animatieprincipes veranderen, traditioneel bepaald door
film

Animatieconcept uitgebreid door webtoepassingen
 Kort, niet-lineair, interactief, variabele afspeeltijd

Video
 beweging -> frames
 registratie via camera
60
Animaties: Animated GIF




Sequentie van bitmapped
images in 1 file
256 kleuren (custom palette)
Beweging eenmalig of als loop
Afspelen op website zonder
plug-in
 img element
61
Animatie: formaten op WWW


GIF (!)
Flash (& Shockwave)





HTML5 + CSS3


Games
Video
Animaties
Menus
In development, it ain’t easy!
SVG is ook animeerbaar!!
62
Pauze
63
Deel II:
Server Side
Technology
Tot midden, eind 90’s: Statische pagina’s
Client vraagt om pagina
Internet
Web server stuurt gevraagde
HTML pagina naar client
65
Statische pagina’s



De inhoud blijft altijd hetzelfde, enige manier om dit te
veranderen is de file ZELF aan te passen
Prima voor kleine pagina’s die weinig upgedate worden
Niet handig voor:
 Bankieren
 Zoekmachines
 E-commerce
 User generated content
 Email
 Online gaming
 Social media
 ……………….
66
Dynamische pagina’s
Client vraagt
pagina
Server
runt
script
Script
bouwt
HTML
code
Internet
HTML naar client
gestuurd
[ Bv. ASP / PHP
/…..]
HTML
klaar
om te
sturen
67
Server side scripting

Script: eigenlijk een set instructies

Server side scripts worden uitgevoerd op de
webserver (of application server)

Veel variatie in server side scripting talen

Common Gateway Interface (CGI) (Python,
Perl)

PHP, Ruby, ASP, .NET, ...
68
PHP







Ontwikkeld door Rasmus Lerdorf in 1995
Op basis van een verzameling Perl scripts
 Personal Home Page
 Nu: PHP- Hypertext Preprocessor
Specifiek ontwikkeld voor web development
Perl en C invloeden in syntax en werking
PHP is een filter
 Input: stream met tekst / HTML en PHP code
 Output: stream met tekst, meestal HTML
PHP code wordt vervangen door z'n uitvoer
PHP vergt installatie op de webserver
69
Voordelen PHP








Open source
Laagdrempelig
Veel forums etc.
Gratis
Wordt ondersteund op meeste webservers
Speciaal voor web, volgt trends snel
Geen compilers nodig, alleen tekst
Scrips zelf niet na te gaan (veiligheid)
70
Wat kan ik met PHP?









Formulieren
Opslaan informatie in Database
Opslaan informatie in textfiles
Omgaan met cookies
E-mailen
File management, downloads
Website (enigszins) beveiligen
Niet alleen HTML, maar ook XML, PDF, docs, vele
anderen nog
…..
71
PHP als scripting taal

Goede voorzieningen voor tekstmanipulatie

Reguliere expressies

Veel functies in de core language

Vele tools

Pragmatisch, eenvoudig te leren, it just works

Eén ding is PHP niet...

Elegant
Hoe werkt het: genereer HTML
<html><body>
<?php
echo ‘Test informatiekunde’;
?>
</body></html>
73
Veel aan PHP is herkenbaar

Lijkt op JavaScript (en vooral op Perl)
 variabelen beginnen met $
 ; aan einde statement
 veel gebruikelijke operatoren
 “ ” en ‘ ‘
 “ ” (kan variabele zijn) en ‘ ‘ (letterlijk wat er staat)

Virtual server!
74
Laat iets zien:

“echo” en “print”
Laat NIET zien:
 //, # of /*
75
Haakjes en Concateneren


‘ voor lettelijke string, “ voor variabele
Concateneren in PHP een “.” :
76
Variabelen




$, gevolgd door naam
Case sensitive!!
Na $ komt _ of letter
Daarna, cijfers, of andere letters







Integers (1,2,3)
Floating point (3.14)
Boolean (true or false)
String (“informatiekunde”)
Resource (bv. Database verbinding)
Array
………
77
Variabelen




Zelf maken
Hoeven niet eerst gedeclareerd te worden
Ook type wordt getermineerd
Variabele: “$” teken



Bv.:
Of:
Of gecombineerd:
$txt="Hallo Utrecht";
$mooinummer = 100
$jong = $christofsleeftijd - 25
78
Variabelen
Lokaal

BINNEN een
functie

Geldt
daarbuiten niet

Dus:

Dus:
79
Functies

Ingebouwde functies


Al gezien: “Echo” (laat iets zien), mail, enz.
Zelf functies maken:
80
Variabelen: Globaal


Kan vanaf overal benaderd worden
Moet gedeclareerd worden
?
81
Variabelen: Superglobals

PHP Superglobals zijn altijd beschikbaar

$_SERVER, $_FILES, $_SESSION,

Bv:
If statement
Tenminste, als je dit op
woensdag of vrijdag
laadt 
83
Invoer doorgeven vanaf client



Via HTML <form> element
 action: naam PHP pagina
 je kunt ook hidden input fields gebruiken
 method: POST of GET
GET: parameters zichtbaar in URL request (data halen)
 handig voor bookmarking, linking
POST: onzichtbaar, meer data
 is (wat) veiliger dan GET
84
Dus:
Server runt
“hallo.php”
Client stuurt data
naar server
HTML
gebouwd,
terug naar
client
85
POST: Invoer doorgeven vanaf client
Christof
Utrecht
HTML
IN BROWSER
PHP
86
Files schrijven op de server

Kan in een database



Maken, lezen en schrijven in files op server




Veelgeziene combinatie is PHP en MySQL (ook gratis)
Niet op ingegaan hier
fopen(), fclose(), fwrite
bv.: fopen("test.txt","a")—opent file om data aan einde toe
te voegen (‘append’)
r, r+, w, a, a+
Let bij schrijfacties op toegangsrechten op server
87
File schrijven
Christof
Utrecht
HTML
IN BROWSER
PHP
88
Sessions


State in de gedaante van generieke session
data
De session data is opgeslagen op de server




In een file of in een database
Minimale identifier ping-pongt heen en weer
Script uitgevoerd in context van de session data
PHP ondersteunt op transparante wijze
sessions


PHPSESSID cookie bevat meestal de session
identifier
Bijvoorbeeld: vgdo5afs4o220s6d991cr1nhg0
Nog wat handige zaken
<?php
$to = "[email protected]";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$headers = "From: [email protected]";
mail($to,$subject,$message,$headers);
?>

functies



mail()
date() met heel veel formatting options
time(): secondes sinds 1 januari 1970, 00:00:00
90
Vragen?
91