AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bitmaps im RAM auslagern?

Ein Thema von Pseudemys Nelsoni · begonnen am 21. Dez 2004 · letzter Beitrag vom 21. Dez 2004
 
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#4

Re: Bitmaps im RAM auslagern?

  Alt 21. Dez 2004, 14:17
.Dormant wandelt das Bitmap von einem GDI Object in ein SYSTEM Object um. Das heist im Klartext das dessen Daten nicht im limitierten GDI Speicher liegen sondern im normalen Hauptspeicher des Prozesses. Diese Methode ist langsam da nicht nur der Speicher kopiert wird sondern auch das Format der Pixeldaten sich ändern kann.

Die schnellste Methode ist es eine ImageList zu verwenden wenn da nicht das Problem wäre das ImageList's nur gleichgroße Bitmaps, mit der Farbauflösung des Systems und in beschränkter Größe/Anzahl speichern kann.

Eventuell solltest du mal Bitmap.SaveToStream(MemoryStream) versuchen. Du speichert also die Bitmap temporär in einen MemoryStream. Deine Liste/Array besteht also nur aus TMemoryStream Objecten und erst zur Anzeige wird ein temporäres TBitmap Object aus dem MemoryStream geladen.
Oder du benutzt gleich nur einen einzigsten TMemoryStream in dem nacheinander die Bitmaps gespeichert werden. Dann benötigst du noch eine kleine Liste/Array das die Offsets == MemoryStream.Position zu den einzelnen Bitmaps im Stream speichert.

Exakt dieses Konzept nutze ich bei meiner TPictureList Komponente. Diese kann beliebige Grafik-Formate in einen gemeinsammen MemoryStream verwalten, natürlich mit zusätzlichen Informationen wie ID, Farbanpassungen, Flags für Zeichenoperatonen wie die Ausrichtung -> zentriert, links, rechts, oben, unten, gekachelt, transparent, Hintergrundfarbe usw. usw. Die TPictureList stellt dann Methoden zum Zeichnen dieser Bilder in einen rechteckigem Bereich mit deren Einstellungen zur Verfügung. Die Bilder werden dabei über eine frei zu vergebende aber eindeutige ID ausgewählt. Diese TPictureList lässt sich über einen Editor zur DesignTime mit Bildern füllen, in einem Rutsch in Dateien laden, speichern und in DFM's speichern. Aber egal das dürfte für dich ja über das Ziel hinaus sein.


Gruß Hagen
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz