ERLEDIGT
NEIN
NEIN
ANTWORTEN
0
0
ZUGRIFFE
108
108
EMPFEHLEN
-
27.07.11 11:20 #1
- Registriert seit
- Jul 2011
- Beiträge
- 7
Hallo,
ich habe einen BITMAPFILEHEADER und BITMAPINFOHEADER geschrieben. Zudem habe ich ein Feld bestehend aus den char-Werten 0, 1, 2, 3, 4 und 5. Je nach Wert möchte ich eine bestimmte Farbe zuweisen. Zunächst hatte ich für biBitCount = 24 angegeben und mit RGBQUAD gearbeitet. Da ich allerdings bei weiten nicht so viele Farben brauche möchte ich für biBitCount = 4 einsetzten. Dazu brauche ich aber anschließend eine Farbtabelle (Color table bzw. color palette) in der ich die 16 Farben definiere/angebe.
Leider weis ich auch nach einer Internetrecherche noch nicht wie ich das machen/programmieren kann.
Kann mir jemand erklären wie so eine Farbpalette aufgebaut ist und wie ich sie dann fürverwende?Code :1
bmpdata.write((char*)&bmp, 3);
Vielen Dank im Voraus!
Gruß
Code :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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
void bitmap(int iDim_Raster, char** AnzahlUeberschneidungen) { int iZ; int iS; char a_n; ofstream bmpdata("fahrrad.bmp", ios::out|ios::binary); //begin stream /*Bitmapfileheader*/ BITMAPINFOHEADER bmpinfo; bmpinfo.biSize = sizeof(BITMAPINFOHEADER); bmpinfo.biWidth = iDim_Raster; bmpinfo.biHeight = iDim_Raster; bmpinfo.biPlanes = 1; bmpinfo.biBitCount = 24; bmpinfo.biCompression = BI_RGB; bmpinfo.biSizeImage = 0; bmpinfo.biXPelsPerMeter = 0; bmpinfo.biYPelsPerMeter = 0; bmpinfo.biClrUsed = 0; bmpinfo.biClrImportant = 0; /*Bitmapinfoheader*/ BITMAPFILEHEADER bmpfile; bmpfile.bfType = 'MB'; bmpfile.bfSize = (bmpinfo.biWidth * bmpinfo.biHeight * (bmpinfo.biBitCount / 8)) + sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER); bmpfile.bfReserved1 = 0; bmpfile.bfReserved2 = 0; bmpfile.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER); bmpdata.write((char*)&bmpfile, sizeof(bmpfile)); bmpdata.write((char*)&bmpinfo, sizeof(bmpinfo)); /*Beschreibt eine Farbe nach der relativen Intensität von blau, rot und grün*/ for(iZ = 0; iZ < bmpinfo.biWidth; iZ++) { for(iS = 0; iS < bmpinfo.biHeight; iS++) { a_n = AnzahlUeberschneidungen[iZ][iS]; if(a_n == 0) { RGBQUAD bmp; //color table, bei biBitCount kleiner 24 muss man eine palette anlegen bmp.rgbBlue = 255; bmp.rgbGreen = 255; bmp.rgbRed = 255; bmpdata.write((char*)&bmp, 3); continue; } } } bmpdata.close(); //stream end, bmp created }
Ähnliche Themen
-
C++ Bitmap erstellen
Von Crash Kid im Forum C/C++Antworten: 0Letzter Beitrag: 07.04.10, 22:42 -
C - Bitmap erstellen
Von BolleF1 im Forum C/C++Antworten: 9Letzter Beitrag: 02.09.09, 15:53 -
Bitmap aus Icon erstellen
Von hury im Forum C/C++Antworten: 0Letzter Beitrag: 14.06.08, 10:32 -
Wie eigene Farbtabelle erstellen? PS V.8
Von Fourseasons im Forum PhotoshopAntworten: 2Letzter Beitrag: 14.11.07, 22:03 -
eigene Farbtabelle erstellen
Von katha1001 im Forum PhotoshopAntworten: 1Letzter Beitrag: 12.10.05, 16:07





Zitieren
Login






