Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Speicher reservieren (https://www.delphipraxis.net/26204-speicher-reservieren.html)

Moony 20. Jul 2004 09:23


Speicher reservieren
 
Hallo erst mal!

Habe hier schon alles was Speicher betrifft durchsucht und erfolglos geblieben.
Ich möchte Bilder mit der Größe einer DIN A4 Seite im Speicher erstellen,jedoch macht mir der Speicher einen Strich unter die Rechnung. Bekomme jedesmal die Meldung: Nicht genügend virtueller Speicher.
Im Quelltext wird ein normales Bild vom Typ TImage erstellt. Nachdem ich versuche die Bitmapgröße auf DIN A4 zu setzen, kommt die Meldung(s.o.).
Kann man selbst für die Bitmap beliebig Speicher reservieren???Festplatte ist groß genug!

Bin für jede Hilfe dankbar...... :wall:

gruß, Moony

ibp 20. Jul 2004 10:07

Re: Speicher reservieren
 
...schau doch mal, wie bei deinem system der speicher verwaltet wird...

Moony 20. Jul 2004 10:24

Re: Speicher reservieren
 
Thx fürs schnelle posting.
Habe meinen Speicher von Min 512 und Max 1024 auf Min 512 und Max 2048 gesetzt. Die Wählbarkeit von der automatischen Verwaltung habe ich nicht.Habe Win2000. Für weitere Vorschläge bin ich dankbar.

gruß, moony :coder:

OregonGhost 20. Jul 2004 10:29

Re: Speicher reservieren
 
Wenn ich mich recht erinnere, gab es für HBITMAPs eine willkürliche Beschränkung in der Größe (Abmessungen), da TImage auf HBITMAP basiert, dürften die Beschränkungen dieselben sein.

Warum möchtest du das machen?
Vielleicht reicht es auch, wirklich einfach Speicher zu reservieren, und dann auf diesem Speicher (anstatt auf dem TImage-Objekt) zu arbeiten. Der Datentyp TRgbQuad ist hierfür gut geeignet, davon brauchst du dann ja nur ein zweidimensionales Array.
Eine Alternative wäre, das Bild in mehrere Bilder aufzuteilen.
Wenn es dir darum geht, das Bild zu drucken, kannst du das auch direkt beim Drucker erstellen.

Übrigens ist die Größe des virtuellen Speichers nicht nur durch deine Festplatte begrenzt. Was meinst du, warum es 64-Bit-Versionen von Windows gibt ;c)

roderich 20. Jul 2004 10:48

Re: Speicher reservieren
 
versuch mal Folgendes (hat mir sehr geholfen bei Bitmaps im Speicher):

Delphi-Quellcode:
  aBitmap := TBitmap.Create;
  aBitmap.PixelFormat := pf24bit; // das ist der Trick, default ist pfDevice
  aBitmap.Width := 1024; // oder so
  aBitmap.Height := 2048; // oder so
PixelFormat=pfDevice kostet anscheinend sehr viel Speicher bei Bitmaps

Gruß
Roderich

Moony 20. Jul 2004 10:58

Re: Speicher reservieren
 
Bei mir handelt es sich um ein Layoutprogramm, wo ich ein Layout mit dem DIN A4 Format habe. JEtzt passiert folgendes: Ich möchte von meinem Layout eine Vorschau erstellen. Im Source wird zunächst eine Bitmap in DIN A4 Format erstellt und dann auf eine angegebene Previewsize verkleinert und abgespeichert. Beim Drucken habe ich das Problem nicht, weil wie du gesagt hast wird alles auf der Printercanvas erstellt. Ich arbeite nur mit dem TImage-Objekt, komme ohne nicht drumherum sont muß ich alles umändern.....kostet unmengen aufwand und Zeit!!!!Ist eine ältere Version von mir und kostet viel Zeit sich im Code wiederzufinden!


gruß, moony :gruebel:

OregonGhost 20. Jul 2004 11:11

Re: Speicher reservieren
 
Warum zeichnest du das ganze dann nicht direkt in deiner Preview-Größe?

Übrigens sagt DIN-A4 nicht viel über eine Bitmapgröße aus. Über welche Auflösung reden wir hier eigentlich?

Moony 20. Jul 2004 11:23

Re: Speicher reservieren
 
Hat sich gerade alles erledigt. Habe das Posting von roderich verwendet....

Delphi-Quellcode:

  aBitmap.PixelFormat := pf24bit;
...und hat sofort gefunzt! Vielen Dank an alle und die Vorschläge. :thuimb:

gruß Moony :dancer:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 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