Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Bild formatunabhängig 90° drehen

  Alt 20. Apr 2009, 17:02
Für die Drehung um 180° habe ich leider noch keine Lösunmg gefunden, die 100%ig funktioniert. Aber ich habe ein weiteres Problem:

Mein Programm war nur die Übrung für etwas größeres .
Ich scanne mehrere Bilder mit einem Scanner ein und möchte die dann drehen und strecken bzw. stauchen. Ich habe nun den Code an mein bestehendes Programm angepasst und nun funktioniert er nicht mehr.

Ich scanne die Bilder ein und packe Sie alle in eine TObjectList, wobei ich die Liste mit Bilder.Add(TBitmap.Create); erweitere und die Bilder mit TBitmap(Bilder.Last).Assign(Image); ablege. Wenn der Scanner fertig ist, werden die der Reihe nach wieder ausgelesen und aus der Liste gelöscht. Theoretisch müsste das hier doch klappen:
Delphi-Quellcode:
TBitmap(Bilder.Items[0]).Width:=help.Height;
TBitmap(Bilder.Items[0]).Height:=help.Width;
Points[0]:=Point(0,help.Width);
Points[1]:=Point(0,0);
Points[2]:=Point(help.Height,help.Width);
PlgBlt(TBitmap(Bilder.Items[0]).Canvas.Handle, Points,
       help.Canvas.Handle, 0, 0,
       help.Width, help.Height, 0, 0, 0);
Aber leider bekomme ich nur ein Bild, bei dem sich Höhe und Breite geändert haben. Das ist logisch, weil diese geändert werden. Ich habe die Vermutung, dass PlgBlt nicht (richtig) ausgeführt wird. Bei meinen Versuchen, dieses mittels einer Bool-Variable abzufragen, bekomme ich immer ein positives Ergebnis (=dasselbe wie in meinem Testprogramm, wo es ja klappt).

Was mache ich falsch?
Alex Winzer
  Mit Zitat antworten Zitat