JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=e24dc5480e2fa3d23ec2967620f9a38aMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

frage zu bitmaps

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Erni
Junior JLI'ler



Anmeldedatum: 29.10.2003
Beiträge: 54

Medaillen: Keine

BeitragVerfasst am: 09.11.2003, 10:53    Titel: frage zu bitmaps Antworten mit Zitat

Hi,
weiss jemand wie man in c++ ein komplettes Bitmap erstellt inkl BITMAPINFOHEADER etc.... . Dann woltle ich noch wissen, in welcher Reihenfolge man ein bitmap erstellt und wie man schlussendlich die Pixel reinschreibt. ich kenne alle Strukturen einer Bitmap, bin mir aber z.b. nicht sicher was ich bei DWORD biSizeangebe, wenn das Bitmap noch gar nicht besteht. Und wo muss ich die strukuren dann reinpacken, wenn ich sie definiert habe??
In einr anderen Datei habe ich byteweise RGB informationen gespeichert, die wollte ich nun als PIXEL auslesen und in einer bitmap speichern.

danke für jede Hilfe
Ernie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 09.11.2003, 12:38    Titel: Antworten mit Zitat

Willst du das unbedingt als Bitmap speichern?
Du kannst theoretisch auch die Pixel einfach so abspeichern, wennes dir nicht darum geht, dass man nachher eine(über ein Grafikprogramm aufrufbare) Bitmap-datei hat, sondern wenn es einfach nur ums abspeichern von Grafiken geht Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Erni
Junior JLI'ler



Anmeldedatum: 29.10.2003
Beiträge: 54

Medaillen: Keine

BeitragVerfasst am: 09.11.2003, 13:19    Titel: Antworten mit Zitat

also prinzipiell gehts mir darum, eine kodierte .raw datei "sichtbar" zu machen, bzw kompatibel zu meinem Grafikprogramm (photoshop 7.01). Ich kenn mich da leider noch nich so gut aus, als was würde man denn dann so eine Datei speichern, ohne headerinfos etc. , und könnte ich so eine Datei dann auch nachträglich mit adobe bearbeiten und unter einem bestimmten format abspeichern?
Derjenige der mir die raw datei zugeschickt hat schrieb folgendes zur codierung:
The raw image data is stored in this sequence(RGB = Red byte + Green
byte + Blue byte):

|--------------43,200--------------------|
|RGB|RGB|RGB|RGB|RGB|RGB|RGB|........|RGB|-------
|RGB|RGB|RGB|RGB|RGB|RGB|RGB|........|RGB| |
|RGB|RGB|RGB|RGB|RGB|RGB|RGB|........|RGB| |
|RGB|RGB|RGB|RGB|RGB|RGB|RGB|........|RGB| 21,600
|...|...|...|...|...|...|...|........|...| |
|...|...|...|...|...|...|...|........|...| |
|RGB|RGB|RGB|RGB|RGB|RGB|RGB|........|RGB| ----

wenn ichs richtig verstehe, jeweils 3 BYTES , 24 bit, pro RGB.
wäre dann folgendes richtig beim auslesen eines bestimmten pixels, sagen wir x = 1, y = 1

Code:

    unsigned char *buffer;
    int offset, pixel_color, R,G,B, x = 1, y = 1;



    offset = (x + y*43200)*3;
    FileIn.seekg(offset);

     buffer = new char[3];

     FileIn.read(buffer,3); //read in ifstream schnall ich nich
                               //so ganz 


     R = buffer[0];
     G = buffer[1];
     B = buffer[2];
    pixel_color = 0xff000000|(R<<16)|(G<<8)|B;
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 09.11.2003, 13:26    Titel: Antworten mit Zitat

Wenn du die Bilder mit anderen Grafikprogrammen weiterverarbeiten willst, muss der Header schon stimmen.

Man braucht für eine Grafikdatei schon Headerinfos(hab ich beim JLI-Format auch). Die Hauptsache ist eben, dass die Grafik und der Header dort gelesen werden kann, wo man die Grafik aufrufen will.
Eine JLI-Grafik z.B. könnte man jetzt nicht mit Photoshop oder M$-Paint öffnen(schon allein wegen den komprimierten Daten).
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Error
Mini JLI'ler



Anmeldedatum: 06.11.2003
Beiträge: 8

Medaillen: Keine

BeitragVerfasst am: 09.11.2003, 14:26    Titel: bmp-Format Antworten mit Zitat

Hallo,

Die Strukturen musst du wie folgt in die Datei geben:

BITMAPFILEHEADER Fileh;
BITMAPINFOHEADER Infoh;
BYTE BitmapBits[];

Ich nehme einmal an, dass du die BitmapBits so lassen kannst wie du sie bereits hast. Die auflösung wäre dann 24. BiSize ist die grösse der infoheaderstruktur (sizeof). BiSizeImage ist die grösse von BitmapBits.
Noch einige werte: bfType="BM" bfReserved1=0, bfReserved2=0, biPlanes=1. Die BI und BF strukturen muss du mit den Daten des Bildes füllen (Höhe, Breite, Auflösung etc.)
Hoffentlich hat dir das wenigstens etwas geholfen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Erni
Junior JLI'ler



Anmeldedatum: 29.10.2003
Beiträge: 54

Medaillen: Keine

BeitragVerfasst am: 09.11.2003, 14:37    Titel: Antworten mit Zitat

ja danke alle, das was ich nciht wirklich kapier ist biXPelsPerMeter und biYPelsPerMeter. kann mir jemand noch verraten wie ich mit ofstream write( .... ) die int color eintrage`?(brauche nur ein write mit parameterbeispiel).

danke
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Error
Mini JLI'ler



Anmeldedatum: 06.11.2003
Beiträge: 8

Medaillen: Keine

BeitragVerfasst am: 09.11.2003, 17:01    Titel: XPelsPerMeter Antworten mit Zitat

XPelsPerMeter kannst du, AFAIK, Null setzen. Es sollte dann auch richtig angezeigt werden.
Fpr das write Beispiel kann ich dir auch keinen Code geben Sad, aber eigendlich solltest du die einzelnen pixel_color Werte einfach nacheinander in die Datei schreiben können. Das einzige Problem könnte sein, dass die Daten oft "auf dem Kopf" gespeichert werden. Aber das sollte eigendlich kein Problem sein, die Daten zu drehen oder das Bild dann im PS zu drehen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
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.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum