Bitmap in einen Buffer laden
-
Hallo Leute,
Mit fread(Buffer, Größe, 1, Datei) kann man eine Datei in einen Buffer einlesen, beispielsweise:
char *Buffer;
Um die Datei in den Buffer einlesen zu können muss ich nun die Datei zuerst öffnen. Ich habe nun ein Bitmap:
Graphics::TBitmap* Bitmap1;
Ich könnte nun dieses Bitmap abspeichern, danach öffnen und in den Buffer laden. Ich frage euch nun: Gibt es eine Möglichkeit das Bitmap direkt in den Buffer einzulesen, ohne zuvor eine Speicherung durchführen zu müssen?
Wenn ihr eine Antwort wisst, dann schreibt mir bitte.
Vielen Dank,
Euer Entertainer
-
Kommt ganz darauf an, was für einBuffer das sein soll, also wofür du den brauchst bzw. was du damit machen willst.
-
Ich möchte das Bild in einen Buffer laden, damit ich später in die Datei, in die ich das Bild speichere noch zusätzliche Informationen über das Bild einbauen kann. Natürlich kann ich das Bild dann nicht mehr als Bitmap, etc. speichern, aber darauf kommt es in meinem Beispiel auch nicht an.
Ich möchte also das Bild in einen Buffer laden und weitere Informationen (Text) in einen anderen Buffer. Diese beiden Buffer will ich darauf in eine Datei hintereinander schreiben.
Kann mir hierbei jemand helfen?
Vielen Dank,
Euer Entertainer
-
Dafür bieten sich die Stream-Klassen der VCL an, z.B. TMemoryStream, da du bequem die entsprechenden Save- und Load-Funktionen benutzen kannst.
-
Könntest du mir bitte ein kleines Beispiel schreiben, wie ich die Bitmap- Datei und den Text in dem Stream zusammenbringe?
Vielen Dank,
dein Entertainer
-
hallo,
du erzeugst dir einen TMemoryStream (gibts in der hilfe ein beispiel). dann kannst du mit der hilfsklasse TWriter/TReader daten aller art schreiben, diese kannst du dem stream übergeben, und dann mit savetofile speichern, zum auslesen gehst du genau umgekehrt vor. dass müsstest du mit der hilfe hinbekommen, da es ausreichend beispiele gibt, fallst nicht schreib einfach nochmal...
mfg
murph