Entwickler-Ecke

Multimedia / Grafik - bmp als Speicheremedium nutzen


Delphianer23 - Mi 19.02.03 22:19
Titel: bmp als Speicheremedium nutzen
Ist es sinnvoll ein bmp als virtuelles Speichermedium intern in nem PRogramm zu nutzen? Ich muss nämlich jedem Bildpunkt eine Zahl zuordnen. Dafür könnte ich doch ein Bitmap nehmen und die Zahl über
RGB(0,0,x) festlegen? Was meint ihr ? Oder soll ich etwa für ein 1000*1000 Bild ein array von

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
type
record=Tspeicher;
           x:integer
           y:integer;
           zahl:integer;
end;
...

var
Punkt: array[0..1000000] of Tspeicher;

wählen???? Geht das überhaupt?? Ich glaub bmps sind gar nicht so schlecht, weil sie schnell sind oder? Die DAten muss ich dann wieder ausslesen und zu richtigen Farbwerten umwandeln

oooojeee (Bin ich in der falschen SParte gelandet?)

Moderiert von user profile iconTino: Code-Tags hinzugefügt. Absätze entfernt.


AndyB - Mi 19.02.03 22:51
Titel: Re: bmp als Speicheremedium nutzen
Blutiges Elend hat folgendes geschrieben:
und die Zahl über RGB(0,0,x) festlegen?

Damit kannst du dann max. 3 Zahlen im Bereich von 0..255 setzen. Oder 2 Zahl mit 0..65535 und 1 Zahl mit 0..256. Oder 1 Zahl mit 0..16mio.

Zitat:
Was meint ihr ?

Nimm lieber das Array, da es keine zusätzlichen Overhead hat, wie bei einem Bitmap. Des weiteren kannst du ohne eine Funktion aufzurufen (-> RGB) auf die Daten zugreifen, was der Geschwindigkeit sehr zu gute kommt.

Zitat:
Punkt: array[0..1000000] of Tspeicher;

Du kannst auch mehrdimensionale Arrays deklarieren:

Quelltext
1:
Punkt: array[0..1000 - 1, 0..1000 - 1] of Tspeicher;                    


Delphianer23 - Mi 19.02.03 22:59

wie viel speicher belegt denn ein so ein array [0..1000000] of tspeicher
ungefähr?


Alibi - Mi 19.02.03 23:08

SizeOf() dürfte dir da weiterhelfen. ;)


Aya - Do 20.02.03 16:13

Hi,

wie groß kann denn die maximal größte Zahl sein die du Speichern mußt???

denn nen Array 1000x1000 of Integer is schon ganzschön Speicherintensiv.. :)

Au'revoir,
Aya