16. juli 2000 - 18:34Der er
5 kommentarer og 1 løsning
Kæmpe Bitmap.
Hej
Jeg skal generere en TBitmap med en hojde og bredde på 4096 pixels!! Det er en ordentlig mundfuld for min maskine med 64 MB RAM.
Jeg bruger følgende kode
var bmp: TBitmap; begin bmp := TBitmap.Create; bmp.Width := 4096; bmp.Height := 4096; end;
og den kompilerer fint, men når man trykker på knappen der udfører proceduren herover, kommer der en exception som siger noget i retning af : "Not enough storage is available to process this command."
Så er det jeg tænker : HA, jeg splitter den da bare op i fire bidder af 2048 gange 2048 og sætter dem sammen til sidst. Men dum som jeg er, har jeg ikke lige tænkt på hvordan man kan samle fire bitmapper i en.
Øv! Men så kom jeg jo i tanke om, at der sidder jo nogle eksperter, som bare venter på spørgsmål som de kan besvare. Det kunne jo være at de ville / kunne hjælpe mig. Det håber jeg :)
jeg ved ikke hovrdan du gør i Delphi, men tror du ikke problemet bliver endnu større nu? Nu skal computerens RAM indholde 4 små plus et stort bitmap-billede!
Hvad problemet skyldes eller hvordan man umiddelbart kan løse det, har jeg ikke sat mig ind i, men den kommentar til at det er rammen det er galt med tror jeg nu ikke .. en opløsning på 4096*4096 pixels burde en maskine med 64 mb ram godt kunne klare. og hvis ikke rammen er nok bruger windows et swappingsystem der gør at den istedet for lagrer informationen på harddisken (går dog betydeligt langsommere) så hvis du ellers ikke også er løbet tør for HD plads, så tror jeg ikke at det er rammen der er problemet. Måske er det en begrænsning i Tbitmap, jeg har desværre ikke tid til at kigge nærmere på det lige nu, jeg ville bare lige få det med rammen på plads :)
dj >> Jeg ved ikke hvad du mener med rammen, men i paint shop pro og photoshop, kan jeg godt lave en bitmap på den størrelse, men den køre utrolig langsom, og det tager 1 minut at gemme den på HD. Jeg har 1 GB på drev C ledig og 1 GB på drev D. Det skulle jo være nok. Den store bitmap fil fylder 48 MB.
Det er ikke et problem med rammen som du nævner det ovenover. Når billedet kan være i din ram i f.eks. Paint Shop Pro, så kan det jo også sagtens være det i dit program.
Problemet ser derimod ud til at være i Tbitmap. Det ser ikke ud til at man kan angive en så stor størrelse på et bitmap medmindre der er et billede i din bitmap. Jeg fik f.eks. denne kode til at virke:
var bmp: TBitmap; begin bmp := TBitmap.Create; bmp.Assign(image1.Picture.Bitmap); //Hiver et bitmap billede fra en Image1 over i din Tbitmap. bmp.Width := 4096; bmp.Height := 4096; end;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.