Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Die Größe eines Grafikdatenfelds aus der Datei auslesen...

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
MalteF



Anmeldungsdatum: 04.12.2008
Beiträge: 44

BeitragVerfasst am: 11.03.2013, 21:37    Titel: Die Größe eines Grafikdatenfelds aus der Datei auslesen... Antworten mit Zitat

...in die ich es zuvor gespeichert habe.
Nochmal zum besseren Verständnis.. zwinkern
Also, ich habe ein Frame einer Animation in Form eines GIFs
auf den Bildschirm gebracht,
dieses Frame per GET gegettet und per BSAVE gespeichert.
Per BLOAD lade ich es in mein Game...

Jetzt möchte ich der Einfachheit halber beim Laden der Datei
die Maße des Bildes auslesen.. (vorzugsweise aus dem Datenfeld, in das ich geladen habe, direkt)
Ich weiß, dass die ersten 7 Byte der Header sind, per PEEK kriege ich an Byte 3 die Höhe, aber ich krieg die Breite nicht...?!

Wäre super wenn mir da jemand auf die Sprünge helfen könnte...!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MalteF



Anmeldungsdatum: 04.12.2008
Beiträge: 44

BeitragVerfasst am: 11.03.2013, 21:50    Titel: Antworten mit Zitat

..übrigens in Screen 13 das Ganze.

Laut diesem Tutorial speichert der Header garnicht die Maße ??
http://support.microsoft.com/kb/34407

Jetzt schnall ich garnix mehr!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 11.03.2013, 22:16    Titel: Antworten mit Zitat

Ist jetzt auch schon ewig her, dass ich mit diesen Befehlen oder gar QB gearbeitet habe, aber ich nehme an, dass dieser Header, der in der MSDN beschrieben wird, den eigentlichen Bilddaten vorangestellt wird, die du mit GET erstellt hast (BSAVE kann nicht nur Grafiken speichern, von daher enthält der BSAVE-Header mit großer Wahrscheinlichkeit keine Bildgrößen zwinkern ). Das heißt, du solltest dir den GET-Header anschauen, nicht den BSAVE-Header.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MalteF



Anmeldungsdatum: 04.12.2008
Beiträge: 44

BeitragVerfasst am: 11.03.2013, 22:18    Titel: Antworten mit Zitat

Das is ne gute Idee, danke!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MalteF



Anmeldungsdatum: 04.12.2008
Beiträge: 44

BeitragVerfasst am: 11.03.2013, 22:49    Titel: Antworten mit Zitat

Also, man kann es aus dem Datenfeld direkt lesen :
0/1. Byte = Breite
2.byte = Höhe

das reicht erstmal für meine Zwecke.. grinsen


Zuletzt bearbeitet von MalteF am 11.03.2013, 23:11, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 11.03.2013, 22:53    Titel: Antworten mit Zitat

Ich nehme mal an, dass einfach die untersten drei Bit im ersten Byte für etwas anderes benutzt werden als für die Größe, deshalb *8 (bzw ein Bit-Shift um 3 Bit). das zweite Byte (oder Teile davon) wird vermutlich die oberen Bits der Breite enthalten, da 5 Bit etwas wenig sind...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MalteF



Anmeldungsdatum: 04.12.2008
Beiträge: 44

BeitragVerfasst am: 11.03.2013, 23:13    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
Ich nehme mal an, dass einfach die untersten drei Bit im ersten Byte für etwas anderes benutzt werden als für die Größe, deshalb *8 (bzw ein Bit-Shift um 3 Bit). das zweite Byte (oder Teile davon) wird vermutlich die oberen Bits der Breite enthalten, da 5 Bit etwas wenig sind...


Hab auch grad gemerkt, dass das wie ich's mir ursprünglich dachte garnicht hinhaute... lächeln
Thx!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 12.03.2013, 22:13    Titel: Antworten mit Zitat

In diesem Fall bitte immer darandenken: BSAVE speichert RAM-Speicherbereiche mit beliebigen Daten ab, BLOAD einfach das Umgekehrte. Dabei "weiss" BSAVE überhaupt nichts davon, ob es ein Bild, Samples eine Sound, Array-Variable in QB oder sonst irgend etwas ist. Ein Header mit Infos wie Grösse, Farbtiefe, Palette usw. wie bei richtigen Bitmap-Dateiformaten suchst Du deshalb vergeblich.

BSAVE und BLOAD arbeiten ungefähr so, wie wenn Du eine Seite fremdsprachigen Text abschreiben würdest, der in einer überhaupt nicht geläufigen Sprache geschrieben ist.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4594
Wohnort: ~/

BeitragVerfasst am: 13.03.2013, 13:56    Titel: Antworten mit Zitat

Falls es beim Aufbau des Bildheaders noch Unklarheiten geben sollte:
http://www.freebasic-portal.de/befehlsreferenz/interne-pixelformate-464.html
sehr weit unten "Version 1 (veraltet)"
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz