256Farben-Bitmap erstellen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

256Farben-Bitmap erstellen

Beitrag von Franky »

Hi,
Folgendes Problem:

Bei PureGraphicShop gibt es ja Pinselformen und Structures.

Die Dateiformate sind ganz einfach aufgebaut:

Dimensionen
Daten

Daten sind hierbei halt immer bytewerte von 0-256

Will ich nun vorschaubildchen machen, wär es ja das logischste, die daten als grundlage für ein 256-Farben-Bild zu nutzen.

Aber das klappt nicht.

Ich hab es so versucht:

Grundheader:

Code: Alles auswählen

Structure THEICONINFO 
    bmiHeader.BITMAPINFOHEADER 
    bmiColors.RGBQUAD[256] 
EndStructure 
BitmapInfoheader :

Code: Alles auswählen

                                                 StructureData\bmiHeader\biSize=SizeOf(BITMAPINFOHEADER)
                                                  StructureData\bmiHeader\biWidth=StructureList()\width
                                                  StructureData\bmiHeader\biHeight=StructureList()\height
                                                  StructureData\bmiHeader\biPlanes=1
                                                  StructureData\bmiHeader\biBitCount=8
                                                  StructureData\bmiHeader\biCompression=#bi_rle8
                                                  StructureData\bmiHeader\bisizeImage=StructureList()\width*StructureList()\height
Palette:

Code: Alles auswählen

For a=0 To 255
      StructureData\bmiColors[a]\rgbred=a
      StructureData\bmiColors[a]\rgbgreen=a
      StructureData\bmiColors[a]\rgbblue=a
Next      
Dann die Daten, einfache Bytewerte.

Die Grundwerte(höhe, breite) sind korrekt, genauso Palette und daten, es kann meiner Meinung nach nur an 2 Sachen liegen:

1.)Ich hab was falsch gemacht bei Planes oder so, im header halt irgendwo
oder
2.)Ich hab den Aufbau dieser Bitmaps nicht richtig verstanden


Momentan lese ich die Daten ein und kopier dann jeden einzelnen Punkt in eine RGB-Structure für den jeweiligen Punkt.

Das ist aber langsam und ja eigentlich auch blödsinnig (blödsinnig im sinne von "es geht schneller und platzsparender")


So, jetzt kommt das Große rätseln, wer kann mir helfen? :D


Achja, Ich habe die Suche genutzt und auch bei PureArea.net nachgesehen.

Das Beispiel welches dort von El_Choni zu finden ist, ist für mich nutzlos, da:
; Note that it doesn't change the format of the image, it's still a 24 bit image but with a reduced
; number of colours.
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
sbehrens
Beiträge: 274
Registriert: 08.09.2004 18:41
Kontaktdaten:

Beitrag von sbehrens »

Franky hat geschrieben:Daten sind hierbei halt immer bytewerte von 0-256
*Bemerkung*Ein Byte kann nur einen Wert von 0 bis 255 aufnehmen, dadurch entstehn also 256 verschiedene Möglichkeiten...*/Bemerkung*

mfG
Basti
enjoy life... while you can!
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Beitrag von Franky »

:oops: schreibfehler :wink:

Daran lags aber nun wirklich nicht ;)
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
Antworten