223015b kap2: demos + barn rgb/cmyk
- 18 demos aus refactor/didaktik-rewrite-2026 cherry-picked (aliasing-paar, byte-fuer-byte, container-vs-codec, drei-dateien, jpeg-pipeline, kap02-05-eroeffner, kb-vs-kib, nyquist-diagram, pivot-signal-zu-byte, psychoakustik/psychovisualitaet-grafik, raster-vs-vektor, summary-kap02, summary-organizer, usb-c-drei-achsen) - barn-rgb.png + barn-cmyk.png neu generiert (analog zu ybcbr.webp, kanaltrennung mit korrekter k-extraktion) - lv-original-vs-fake.jpg + 02-bild-audio-video.md slides wired up
This commit is contained in:
@@ -0,0 +1,200 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Drei Dateien — dasselbe Innenleben</title>
|
||||
<style>
|
||||
:root {
|
||||
--dark: #1a1a2e;
|
||||
--muted: #6b7280;
|
||||
--soft: #f8fafc;
|
||||
--border: #cbd5e1;
|
||||
--hl: #d63384;
|
||||
--foto: #2563eb;
|
||||
--audio: #ea580c;
|
||||
--pdf: #7c3aed;
|
||||
}
|
||||
html, body { margin: 0; padding: 0; background: #fff; font-family: system-ui, -apple-system, sans-serif; color: var(--dark); }
|
||||
body { padding: 32px 40px; }
|
||||
h1 { text-align: center; margin: 0 0 6px; font-size: 1.85rem; }
|
||||
.sub { text-align: center; color: var(--muted); margin-bottom: 28px; font-size: 1.05rem; }
|
||||
.sub strong { color: var(--dark); }
|
||||
|
||||
.files {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
gap: 22px;
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.file {
|
||||
border: 2px solid;
|
||||
border-radius: 12px;
|
||||
padding: 16px 18px;
|
||||
background: #fff;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
}
|
||||
.file.foto { border-color: var(--foto); }
|
||||
.file.audio { border-color: var(--audio); }
|
||||
.file.pdf { border-color: var(--pdf); }
|
||||
|
||||
.file-head { display: flex; justify-content: space-between; align-items: baseline; }
|
||||
.file-name { font-size: 1.2rem; font-weight: 700; }
|
||||
.file.foto .file-name { color: var(--foto); }
|
||||
.file.audio .file-name { color: var(--audio); }
|
||||
.file.pdf .file-name { color: var(--pdf); }
|
||||
.file-ext { font-family: ui-monospace, monospace; font-size: 0.78rem; color: var(--muted); }
|
||||
|
||||
.preview {
|
||||
border-radius: 8px;
|
||||
border: 1px solid var(--border);
|
||||
overflow: hidden;
|
||||
display: block;
|
||||
height: 130px;
|
||||
background: var(--soft);
|
||||
}
|
||||
|
||||
.hex-strip {
|
||||
background: #0f0f23;
|
||||
border-radius: 6px;
|
||||
padding: 8px 10px;
|
||||
font-family: ui-monospace, monospace;
|
||||
font-size: 0.78rem;
|
||||
line-height: 1.6;
|
||||
color: #cbd5e1;
|
||||
overflow: hidden;
|
||||
}
|
||||
.hex-strip .magic { color: #fff; font-weight: 700; padding: 0 2px; border-radius: 2px; }
|
||||
.hex-strip.foto-magic .magic { background: var(--foto); }
|
||||
.hex-strip.audio-magic .magic { background: var(--audio); }
|
||||
.hex-strip.pdf-magic .magic { background: var(--pdf); }
|
||||
.hex-label {
|
||||
font-size: 0.68rem;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.1em;
|
||||
color: var(--muted);
|
||||
font-weight: 700;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
.magic-caption {
|
||||
font-size: 0.78rem;
|
||||
color: var(--muted);
|
||||
text-align: center;
|
||||
font-family: ui-monospace, monospace;
|
||||
}
|
||||
.magic-caption .magic-word {
|
||||
color: var(--dark);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.verdict {
|
||||
margin-top: 26px;
|
||||
max-width: 1200px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
text-align: center;
|
||||
border: 2px solid var(--hl);
|
||||
border-radius: 12px;
|
||||
padding: 14px 22px;
|
||||
}
|
||||
.verdict-q { font-size: 1.15rem; font-weight: 700; color: var(--hl); }
|
||||
.verdict-a { font-size: 0.95rem; color: var(--dark); margin-top: 4px; }
|
||||
.verdict-a strong { color: var(--hl); }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Drei Dateien — dasselbe Innenleben</h1>
|
||||
<div class="sub">Außen <strong>völlig verschieden</strong>. Innen reden alle dieselbe Sprache: <strong>Byte für Byte</strong>.</div>
|
||||
|
||||
<div class="files">
|
||||
|
||||
<div class="file foto">
|
||||
<div class="file-head">
|
||||
<span class="file-name">Foto</span>
|
||||
<span class="file-ext">.png</span>
|
||||
</div>
|
||||
<svg class="preview" viewBox="0 0 220 130" preserveAspectRatio="xMidYMid slice">
|
||||
<defs>
|
||||
<linearGradient id="sky-f" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0%" stop-color="#fde68a"/>
|
||||
<stop offset="60%" stop-color="#fb923c"/>
|
||||
<stop offset="100%" stop-color="#7c3aed"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect x="0" y="0" width="220" height="130" fill="url(#sky-f)"/>
|
||||
<circle cx="160" cy="50" r="18" fill="#fef3c7" opacity="0.95"/>
|
||||
<path d="M0,95 L40,80 L80,90 L120,72 L160,86 L220,75 L220,130 L0,130 Z" fill="#1e1b4b"/>
|
||||
<path d="M0,110 L60,100 L120,108 L180,98 L220,105 L220,130 L0,130 Z" fill="#0f172a" opacity="0.7"/>
|
||||
</svg>
|
||||
<div>
|
||||
<div class="hex-label">Erste Bytes der Datei</div>
|
||||
<div class="hex-strip foto-magic">
|
||||
<span class="magic">89 50 4E 47</span> 0D 0A 1A 0A 00 00 00 0D 49 48 44 52
|
||||
</div>
|
||||
</div>
|
||||
<div class="magic-caption"><span class="magic-word">50 4E 47</span> = <span class="magic-word">"PNG"</span></div>
|
||||
</div>
|
||||
|
||||
<div class="file audio">
|
||||
<div class="file-head">
|
||||
<span class="file-name">Sprachnachricht</span>
|
||||
<span class="file-ext">.mp3</span>
|
||||
</div>
|
||||
<svg class="preview" viewBox="0 0 220 130" preserveAspectRatio="none">
|
||||
<rect x="0" y="0" width="220" height="130" fill="#0f0f23"/>
|
||||
<line x1="0" y1="65" x2="220" y2="65" stroke="#374151" stroke-width="1"/>
|
||||
<path d="M0,65 L8,65 L12,55 L16,75 L20,40 L24,90 L28,30 L32,95 L36,35 L40,90
|
||||
L48,45 L56,82 L64,50 L72,78 L80,52 L88,75 L96,55 L104,72
|
||||
L116,58 L128,72 L140,60 L152,70 L168,62 L184,68 L200,64 L220,65
|
||||
L220,130 L0,130 Z" fill="#fb923c" stroke="#ea580c" stroke-width="1"/>
|
||||
</svg>
|
||||
<div>
|
||||
<div class="hex-label">Erste Bytes der Datei</div>
|
||||
<div class="hex-strip audio-magic">
|
||||
<span class="magic">49 44 33</span> 03 00 00 00 00 03 76 54 49 54 32 00 00
|
||||
</div>
|
||||
</div>
|
||||
<div class="magic-caption"><span class="magic-word">49 44 33</span> = <span class="magic-word">"ID3"</span></div>
|
||||
</div>
|
||||
|
||||
<div class="file pdf">
|
||||
<div class="file-head">
|
||||
<span class="file-name">PDF-Dokument</span>
|
||||
<span class="file-ext">.pdf</span>
|
||||
</div>
|
||||
<svg class="preview" viewBox="0 0 220 130" preserveAspectRatio="xMidYMid meet">
|
||||
<rect x="0" y="0" width="220" height="130" fill="#f8fafc"/>
|
||||
<rect x="50" y="14" width="120" height="102" rx="4" fill="#fff" stroke="#cbd5e1" stroke-width="1"/>
|
||||
<rect x="58" y="24" width="80" height="4" rx="1" fill="#7c3aed"/>
|
||||
<rect x="58" y="34" width="104" height="2" fill="#cbd5e1"/>
|
||||
<rect x="58" y="40" width="98" height="2" fill="#cbd5e1"/>
|
||||
<rect x="58" y="46" width="92" height="2" fill="#cbd5e1"/>
|
||||
<rect x="58" y="52" width="100" height="2" fill="#cbd5e1"/>
|
||||
<rect x="58" y="62" width="80" height="2" fill="#cbd5e1"/>
|
||||
<rect x="58" y="68" width="96" height="2" fill="#cbd5e1"/>
|
||||
<rect x="58" y="74" width="88" height="2" fill="#cbd5e1"/>
|
||||
<rect x="58" y="84" width="40" height="3" rx="1" fill="#7c3aed" opacity="0.7"/>
|
||||
<rect x="58" y="92" width="92" height="2" fill="#cbd5e1"/>
|
||||
<rect x="58" y="98" width="86" height="2" fill="#cbd5e1"/>
|
||||
<rect x="58" y="104" width="78" height="2" fill="#cbd5e1"/>
|
||||
</svg>
|
||||
<div>
|
||||
<div class="hex-label">Erste Bytes der Datei</div>
|
||||
<div class="hex-strip pdf-magic">
|
||||
<span class="magic">25 50 44 46</span> 2D 31 2E 37 0A 25 E2 E3 CF D3 0A 0A
|
||||
</div>
|
||||
</div>
|
||||
<div class="magic-caption"><span class="magic-word">25 50 44 46</span> = <span class="magic-word">"%PDF"</span></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="verdict">
|
||||
<div class="verdict-q">Drei verschiedene Dinge — eine Sprache.</div>
|
||||
<div class="verdict-a">Jede Datei beginnt mit ihrer <strong>Visitenkarte</strong> (Magic Number) und besteht ab da aus nichts als Byte. Foto, Audio, PDF — alle dieselben Bauteile, nur anders zusammengesetzt.</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user