|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Erni Junior JLI'ler
Anmeldedatum: 29.10.2003 Beiträge: 54
Medaillen: Keine
|
Verfasst am: 09.11.2003, 10:53 Titel: frage zu bitmaps |
|
|
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 |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 09.11.2003, 12:38 Titel: |
|
|
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 _________________ 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 |
|
|
Erni Junior JLI'ler
Anmeldedatum: 29.10.2003 Beiträge: 54
Medaillen: Keine
|
Verfasst am: 09.11.2003, 13:19 Titel: |
|
|
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 |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 09.11.2003, 13:26 Titel: |
|
|
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 |
|
|
Error Mini JLI'ler
Anmeldedatum: 06.11.2003 Beiträge: 8
Medaillen: Keine
|
Verfasst am: 09.11.2003, 14:26 Titel: bmp-Format |
|
|
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 |
|
|
Erni Junior JLI'ler
Anmeldedatum: 29.10.2003 Beiträge: 54
Medaillen: Keine
|
Verfasst am: 09.11.2003, 14:37 Titel: |
|
|
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 |
|
|
Error Mini JLI'ler
Anmeldedatum: 06.11.2003 Beiträge: 8
Medaillen: Keine
|
Verfasst am: 09.11.2003, 17:01 Titel: XPelsPerMeter |
|
|
XPelsPerMeter kannst du, AFAIK, Null setzen. Es sollte dann auch richtig angezeigt werden.
Fpr das write Beispiel kann ich dir auch keinen Code geben , 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 |
|
|
|
|
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
|