[Delphi] Gedeelte van plaatje kopieeren

Pagina: 1
Acties:

  • Diddle
  • Registratie: December 2001
  • Niet online
Hallo, ik wil graag een bitmap in drie stukken verdelen, maar het probleem is dat ik het niet voor elkaar krijg om ook maar één stuk gekopieerd te krijgen naar een nieuwe bitmap.

De precieze bedoeling is dus dat ik een bitmap open, deze verdeel in drie stukken en vervolgens alle stukken opsla als een andere bitmap.
Ik heb tot nu toe geprobeerd om eerst 1 stuk te kopieren, maar dat werkt dus niet:
code:
1
2
3
4
5
6
7
8
9
var
  t1, t2: TBitmap;
begin
  t1 := TBitmap.Create;
  t2 := TBitmap.Create;
  t1.LoadFromFile('D:\pic.bmp');
  t2.Canvas.CopyRect(Rect(0, 35, 0, 35), t1.Canvas,Rect(0, 35, 0, 35));
  t2.savetofile('D:\pic1.bmp');
end;


Nou slaat hij wel de file pic1.bmp op, maar dit is gewoon een wit vakje van 35x35... :?
Waarom werkt dit niet? Ik heb me suf gezocht naar een oplossing, google groups, yahoo groups, de search hier, maar ik kan werkelijk niets vinden dat de oplossing biedt.

Wat doe ik verkeerd?

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Kijk eens naar de volgorde van de parameters van de Rect functie. Volgensmij haal je die doorelkaar. En vergeet ook niet om je t2 bitmap wel de juiste Width en Height te geven zodat ie groot genoeg is. Vergeet als laatste je t1 en t2 niet vrij te geven, want nu heb je een memory leak.

We adore chaos because we like to restore order - M.C. Escher


Verwijderd

Yep, het ligt aan de volgorde van de Trect. Die moet namelijk left,top,right,bottom zijn.....

  • Diddle
  • Registratie: December 2001
  • Niet online
LordLarry schreef op 06 maart 2004 @ 23:44:
Kijk eens naar de volgorde van de parameters van de Rect functie. Volgensmij haal je die doorelkaar. En vergeet ook niet om je t2 bitmap wel de juiste Width en Height te geven zodat ie groot genoeg is. Vergeet als laatste je t1 en t2 niet vrij te geven, want nu heb je een memory leak.
Verwijderd schreef op 06 maart 2004 @ 23:51:
Yep, het ligt aan de volgorde van de Trect. Die moet namelijk left,top,right,bottom zijn.....
_/-\o_
Allebei hardstikke bedankt, ik haalde inderdaad die volgorde door elkaar en vergat ook nog t2 de juiste grootte te geven... Het werkt nu perfect! :)