Autor Beitrag
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 16.12.09 00:11 
Hallo!

Folgend ein Tipp zu Gewinnspiel 3 ("3D-Film"):
  • Der Sturz des Weihnachtsmannes führte zu haufenweise Farbe.
  • Vor dem Fall die Treppe runter waren die Pixel ganz normal nach Frame gruppiert und die Farben nach Pixel.


Ich hoffe, es hilft dem ein oder anderen auf die Sprünge :-)

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".


Zuletzt bearbeitet von Christian S. am Sa 19.12.09 13:33, insgesamt 1-mal bearbeitet
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Mi 16.12.09 08:40 
Farbe?
Na toll, nun ist das genau das umgekehrte von dem was ich gesagt hätte -> nämlich keine Farbe (nur SW)...
Jetzt, bin ich wieder am Anfang bei einer Datei wo komisches Zeug drin steht, was keiner versteht.
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Mi 16.12.09 12:41 
Ich find das lustig. Ich lös die Aufgaben immer ohne Tip, dann kommt der Tip und ich hab keine Ahnung, was ich damit hätte anfangen soll ;-)
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Mi 16.12.09 14:38 
Gibts vielleicht irgendwelche Topics oder so die solche Thematiken behandeln, weil ich habe echt 0 plan wie sowas aussehen soll...
Und ein BMP sieht auch anders aus als das was ich da nun drin habe ...
Noob23
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 93

Win XP, Win Server 2003, Win 7, Ubuntu
Delphi 7, c/c++ Dev-c++, µC-8051 Keil, Webdesign Notepad++
BeitragVerfasst: Mi 16.12.09 14:53 
user profile iconNiko S. hat folgendes geschrieben Zum zitierten Posting springen:
Gibts vielleicht irgendwelche Topics oder so die solche Thematiken behandeln, weil ich habe echt 0 plan wie sowas aussehen soll...
Und ein BMP sieht auch anders aus als das was ich da nun drin habe ...


Es ist ja kein BMP sondern ein Film ;)

_________________
Man streitet zwar noch über die Entstehung der Erde -
Aber über den Untergang sind sich doch schon alle einig...
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Mi 16.12.09 15:38 
Und ein Film besteht aus mehreren Bildern, folglich sind dort einfach mehrere Bilder hintereinander ...
Frage: Wieviel Bytes hat nun ein Bild? & Wie Les ich die Bilder aus..
Oder lieg ich da etwa falsch?
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Mi 16.12.09 16:25 
Nein du liegst richtig. Und genau darin liegt ja das Rätsel.

PS: Vorsicht mit solchen Äußerungen, kann schon als Tip gewertet werden.

Die Rätsel sind aber meist so, dass man erst das Problem suchen, lösen und dann in der Lösung noch eine Frage beantworten muss.
Boldar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1555
Erhaltene Danke: 70

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: Mi 16.12.09 16:46 
Mhhh, also ich kann mit dem Tipp so garnichts anfangen...
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Mi 16.12.09 16:51 
So okay der Tipp ist denke ich eindeutig, ich kann nun damit was anfangen, bin mit meinen Analysen weiter =D
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Do 17.12.09 18:27 
Also der Tipp ist mal wieder typisch für unser Mod-Team: Verwirrend ;-) Da muss man aber wirklich schon seitwärts denken, um von der Lösung auf den Tipp zu kommen!

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Christian S. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 19.12.09 13:34 
Hallo!

Ich habe oben einen weiteren Tipp eingefügt :-)

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Sa 19.12.09 13:39 
Der Weihnachtsmann sollte sich wirklich bessere Hardware zulegen ....
Sylvus
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 195



BeitragVerfasst: Sa 19.12.09 14:11 
Wenn ich "Farben nach Pixel" lese, hört mein Kopf automatisch auf zu denken, weil er sonst in eine Endlosschleife rutschen würde, was sich negativ auf meine Gesundheit auswirken könnte...
Noob23
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 93

Win XP, Win Server 2003, Win 7, Ubuntu
Delphi 7, c/c++ Dev-c++, µC-8051 Keil, Webdesign Notepad++
BeitragVerfasst: So 20.12.09 07:39 
Hab zwar eine plausible Lösung, nur die Tipps hätten mir keinen Deut weitergeholfen - eher das Gegenteil, die Verzweiflung hätte mich heimgesucht :roll:

_________________
Man streitet zwar noch über die Entstehung der Erde -
Aber über den Untergang sind sich doch schon alle einig...
OG Karotte
Hält's aus hier
Beiträge: 6

Win XP Pro, Win Vista HP
Delphi 2009 Professional
BeitragVerfasst: So 20.12.09 16:12 
Ich hab' weder 'ne plausible Lösung, noch kann ich mit den Tipps irgendetwas anfangen :autsch:

Ich hab' nich mal 'ne Ahnung wo ich "ansetzen" soll :oops:

_________________
Gruß
Stefan
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: So 20.12.09 19:53 
Versuch doch mal nen Hex Editor... Hier gibts einen im Forum (HxD)
OG Karotte
Hält's aus hier
Beiträge: 6

Win XP Pro, Win Vista HP
Delphi 2009 Professional
BeitragVerfasst: So 20.12.09 20:30 
user profile iconNiko S. hat folgendes geschrieben Zum zitierten Posting springen:
Versuch doch mal nen Hex Editor... Hier gibts einen im Forum (HxD)

Das war das erste was ich genutzt hab'. Ich habe bislang nur keinen Ansatz gefunden die Daten richtig zu interpretieren :oops:

Na ja, ein paar Stunden hab' ich ja noch...
... und wenn alles nichts hilft nutz' ich die 25% Chance :wink:

_________________
Gruß
Stefan
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: So 20.12.09 20:33 
Mal eine Frage ans Team: Wie sieht bei euch nen Wichtel aus? Ein Wichtel ist ja ein Fantasiegeschöpf. Von daher kann er ja auch wie ein Hase, Tiger, Rentier, Schneemann oder sonstwas aussehen...
Christian S. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 20.12.09 20:42 
Ein Wichtel sieht logischerweise nicht so aus wie die anderen Optionen.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Christian S. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 21.12.09 01:20 
Soooo, die Auflösung für dieses Rätsel ist, dass ein Hase zu sehen ist.

Um eine Filmdatei in Frames zu zerlegen, muss man erst einmal wissen, wie groß so ein Frame ist. Das steht in der Filmdatei ganz am Anfang, nämlich das Byte mit Wert 100, dann die Buchstaben "EE", wieder ein Byte 100 und dann wieder die Buchstaben "EE". Ein Frame hat die Dimension 100 x 100 Pixel.

Normalerweise würde man bei einem Film hergehen, und speichert erst die Pixel des Frames Nr. 1, dann Frame Nr. 2, etc. Innerhalb eines Frames speichert man für jedes Pixel die Farben in diesem Pixel zusammen. Da unser Videoformat "3-Eyes-Ready" ist, braucht man drei Farben pro Pixel.

Tatsächlich hat der Sturz des Weihnachtsmannes aber dazu geführt, dass die Farben Haufen bildeten. Die oben beschriebene Gruppierung von Pixel nach Frame und Farbe nach Pixel galt nicht mehr. Die Anordnung der Daten war vielmehr so, dass zuerst für Pixel (1,1) alle Rotwerte aller Frames hintereinander geschrieben wurden, dann alle Grünwerte und dann alle Blauwerte (hier Null, weil die Kamera nur für Zweiäuger aufnahm). Dann wurde zum nächsten Pixel gegangen und wieder erst alle Rotwerte aller Frames gespeichert, etc.

Ein Lösungsprogramm (zip, 6.33 KB) könnte dann folgendes machen, wenn man die verschiedenen Frames in einer PictureBox anzeigen möchte (per Trackbar selektiertbar):
ausblenden volle Höhe Delphi-Prism-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
  var ofd := new OpenFileDialog();
  if ofd.ShowDialog = DialogResult.OK then
  begin
    //Filmdaten lesen
    var bytes := File.ReadAllBytes(ofd.FileName);

    //Dimensionen eines Frames bestimmen
    var width := Int32(bytes[0]);
    var height := Int32(bytes[3]);

    //Anzahl der Frames
    var frameCount := (bytes.Length - 6) / (width * height * 3);
    fFrames := new Bitmap[frameCount];

    //Initialisierung
    for i : Integer := 0 to frameCount - 1 do
      fFrames[i] := new Bitmap(width, height);

    //Alle Pixel durchgehen
    for x : Integer := 0 to width-1 do
      for y : Integer := 0 to height-1 do
      begin       
        var idx := 6 + (width * x + y)*(3*frameCount); //Ein Pixel ist (3 Bytes)*(Frame-Anzahl) groß
        for i : Integer := 0 to frameCount - 1 do //Für jeden Frame die Farben des Pixels bestimmen
          fFrames[i].SetPixel(x, y, Color.FromArgb(bytes[idx+i], bytes[idx+i+frameCount], bytes[idx+i+2*frameCount]));
      end;

    //Anzeige-Gedöns
    trackBar1.Maximum := frameCount-1;
    pictureBox1.Image := fFrames[0];
  end;


Bis auf Invertierung erhält man dann pro Frame dieses Bild zweimal (jeweils in verschiedenen Farbkanälen):
hase
Einloggen, um Attachments anzusehen!
_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".