Avatar billede speedy Nybegynder
16. juli 2000 - 18:34 Der 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 :)

Hvad gør jeg ??

/SpEeDy
Avatar billede stigc Nybegynder
16. juli 2000 - 19:11 #1
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!
Avatar billede speedy Nybegynder
16. juli 2000 - 19:59 #2
Jeg tænkte på om man  kunne gemme de 4 eller 16 (hvis man deler det op i 16 :) filer på Harddisken og på en eller anden måde samle dem sådan ???

/SpEeDy
Avatar billede dj Nybegynder
16. juli 2000 - 21:14 #3
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 :)

mvh. _DJ_
Avatar billede speedy Nybegynder
17. juli 2000 - 08:32 #4
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.

Men jeg vil stadig gerne have en løsning :)

/SpEeDy
Avatar billede dj Nybegynder
17. juli 2000 - 12:14 #5
yep, det er det jeg mener ..

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;

Det kan du jo se om det løser dit problem.

Mvh. _DJ_
Avatar billede speedy Nybegynder
17. juli 2000 - 20:09 #6
Tak! Det virker

Men hvordan kan det være at det virker ??

Hvilken forskel gør det ??

Men i alt fald, tak for hjælpen !

/SpEeDy
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester