Hallo,
ich habe mal wider ne Stelle, an der ich nicht weiterkomme. Wahrscheinlich finde ich in den nächsten 15 min die Lösung, aber trotzdem suche ich eure Hilfe. Ich benutzte zur zeit diese (auch die einzige funktionierende die ich gefunden habe) Procedure die ich im Forum hier gefunen habe:
Delphi-Quellcode:
procedure Rotate(const Src: TBitmap32; const Dst: tBitmap32; Angle: Single; x,y: integer);
var
SrcR: Integer;
SrcB: Integer;
T: TAffineTransformation;
Sx, Sy, Scale: Single;
begin
SrcR := Src.Width - 1;
SrcB := Src.Height - 1;
T := TAffineTransformation.Create;
T.SrcRect := FloatRect(0, 0, SrcR +1, SrcB + 1);
try
// shift the origin
T.Clear;
// move the origin to a center for scaling and rotation
T.Translate(-SrcR / 2 , -SrcB / 2 );
T.Rotate(0, 0, Angle);
// move the origin back
T.Translate(SrcR / 2, SrcB / 2 );
// zu x und y bewegen
T.Translate(x,y);
// transform the bitmap
Transform(Dst, Src, T);
finally
T.Free;
end;
end;
Jedoch entstehen dabei unschöne ränder bei 90° 180° 270° entstehen. Siehe bild:
Darum suche ich eine Lösung diese Problems oder eine andere Möglichkeit auch mit
gdi+ falls nötig!
MfG schlagzu