Image im Speicher erstellen und darin zeichnen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Image im Speicher erstellen und darin zeichnen

Beitrag von R4z0r1989 »

hey Leute,

Ich bins mal wieder und hab auch gleich ne frage:

Ich möchte aus performancegründen gerne ein Image direkt im speicher erstellen (ohne CreateImage() oder anderen PB oder API direktbefehlen)

und darin eben mit rgb werten oder einfach nur byte einzelne punkte malen also wie plot.

und danach möchte ich das image aber in pb aufrufen können um es z.B. speichern zu können.

Ich hoffe ich hab mich verständlich ausgedrückt ;-)

Ich danke für eure Antworten
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ein Image das du von PB oder einem anderen System aus verwenden kannst,
besteht immer auf einem Objekt-Header und der eigentlichen Bitmap.

oder genauer zu deiner Anfrage:
um eine Bitmap die im Speicher steht als Image verwenden zu können,
musst du auf jeden Fall noch einen Objekt-Header davorsetzen.

auf der anderen Seite:
Wenn du ein Image per CreateImage erstellst,
kannst du trotzdem in die API-Structure des Objektheaders gucken,
den Anfangspointer deiner Bitmap auslesen und dann direkt reinpoken wie in jeden anderen Speicher.


du schreibst
> aus performancegründen

wo hapert es denn bei dir an der Performance?

natürlich ist der Zugriff per StartDrawing( ImageOutput( Nr ) ) eher langsam,
aber auch auf ein mit PB erstelltest Image kannst du mit der BitBlt-API zugreifen,
bzw. direkt hinein poken.

und wie bereits angedeutet, natürlich kannst du per AllocateMemory
einen Speicher reservieren und mit PokeL Farbwerte reinschreiben,
aber ohne Header kannst du es nicht als Image verwenden lassen.
Antworten