|
| Autor |
Nachricht |
AxelMertes Newbie

Anmeldedatum: 06.04.2009 Beiträge: 2
|
Hilfe gesucht: Image Viewer mit Scrolling...
Verfasst am: 06.04.2009, 18:25 |
|
|
Hi!
Ich bin gerade für ein mini-Projekt auf der Suche nach Quellcode oder ein paar Tipps oder einem echten Könner für ein Programm, das auf einem EeePC laufen soll:
Ich will auf einem Rechner ein ca. 8K * 2K großes Panorama-Bild laden und scrollen (kann auch etwas größer oder kleiner werden, steht noch nicht zu 100% fest).
Die Steuerung erfolgt über eine mechanische Hardware (ähnlich wie ein Joystick, wird per USB angeschlossen, Programmierung dafür steht weitgehend). Diese Hardware liefert exakte X/Y Positionen, die werden dann noch per Programm und eine Lookup-table auf die X/Y Koordinaten des Bildes umgerechnet. Aufgabe ist es nun, den entsprechenden Bildausschnitt passend zur mit der Hardware angesteuerten X/Y Koordinate möglichst in Echtzeit darzustellen. Dazu läuft das ganze in einer Endlos-Schleife und zeigt einfach immer das Bild an der gerade gelesenen Koordinate an. Im Grunde super simpel, das ganze. Wichtig nur: Es sollte schnell sein.
Ein Traum wäre natürlich noch den Bildwechsel in die Video-Austastlücke/Screen Refresh des LCD Monitors zu legen, aber wenn das nicht geht ist das eben so. Scheint ohnehin von der Grafik abhängig zu sein und die ist beim EeePC eher bescheiden.
Ich brauche im Grunde nur folgendes:
1. Bild ins RAM oder Grafikkarte laden (Format ist dabei völlig egal, ich kann es so konvertieren, wie es das Programm braucht, ist ja nur 1 Bild, ändert sich nicht mehr).
2. Aktuelle X/Y Position von Steuer-Hardware lesen.
3. Bildausschnitt für X/Y Position anzeigen (das Display hat 1024x600y Pixel).
4. goto 2.
Also im Klartext:
Ein 1024x600y großer Ausschnitt aus einem vielleicht 8000x2000y Pixel großen Bild soll entsprechend einer X/Y Koordinate angezeigt werden. Nicht mehr, nicht weniger. Und in den Quellcode müsste ich dann noch die X/Y Hardware-Steuerung einbauen (die steht weitgehend schon).
Das ganz sollte halt recht flüssig laufen, nicht wirken wie ein total ruckelndes Programm oder so. Aber die meisten Picture Viewer sind schon sehr schnell auf der Kiste - allein ich kann sie nicht steuern... (schnief).
Idealerweise wäre es am Ende sogar so:
1. Bild ins RAM oder Grafikkarte laden (Format ist dabei egal, wie können es so konvertieren, wie es das Programm braucht, ist ja nur 1 Bild).
2. Mouse Cursor unsichtbar machen und Bild ist Vollbild (also keine Windows-Rahmen etc. mehr).
3. Austastlücke abwarten (wie gesagt, ein Traum, kein Muss)
4. Aktuelle X/Y Position von Steuer-Hardware lesen.
5. Bildausschnitt für X/Y Position anzeigen (das Display hat 1024x600y Pixel).
6. goto 3.
Das ganze soll auf einem ASUS EeePC 1.6 GHz ATOM Prozessor mit 1024x600y LCD Display 8.9" laufen.
Vielleicht hat irgendjemand hier ein paar Tips oder etwas Zeit hier was zu stricken, was einfach tut. Ich bin neu in Visual Basic und tu mich sehr schwer überhaupt die richtigen Sachen zu finden. Wer mag, kann hier gerne antworten oder mich per PM kontaktieren.
Vielen lieben Dank für Eure Hilfe. Ich würde mich auch gerne irgendwie revanchieren wenns irgend geht.
Viele Grüße,
Axel Gruß,
Axel |
|
| |
|
 |
AxelMertes Newbie

Anmeldedatum: 06.04.2009 Beiträge: 2
|
Verfasst am: 09.04.2009, 23:11 |
|
|
Hi Leute,
ist denn hier wirklich keiner der mir helfen kann, und sei es mit "nimm die Library und mach das so und so und es geht"?
Ich muss das irgendwie zum laufen bringen, könnte also ein paar Tipps wirklich gebrauchen. Vielleicht könnte ich Euch ja mit ner guten Flasche Wein bestechen? Wer weiss...
Gruß,
Axel |
|
| |
|
 |
ShockerZz Tutorial Leser


Anmeldedatum: 04.04.2009 Beiträge: 34
|
Verfasst am: 10.04.2009, 11:04 |
|
|
Also man könnte es so realisieren, indem man die PictureBox bewegt. Um Vollbild zu haben musst du folgende Einstellungen machen:
-FormBorderStyle auf none
-StartPosition auf manual
-TopMost auf true
-Size anpassen (also 1024; 600)
Dann brauchst du eine Picturebox die genau so groß ist, wie das Bild. Der Rest ist einfach: Wenn der Ausschnitt ab Point 30; 45 gezeigt werden soll, machst du PictureBox1.Location = New System.Drawing.Point(-30; -45).
So könnte es funktionieren, die Frage ist nur, ob das schnell genug ist. |
|
| |
|
 |
|
|