Hi,
Graphics32 ist eine Sammlung aus Delphi Units, die du kostenlos herunterladen und installieren darfst.
Für die Graphics32-Bibliothek brauchst du auch keine komplexen Formeln zu kennen, denn gerade die werden dir ja abgenommen.
Ich habe für meinen Smileymaker, den ich etwa vor einem jahr geschrieben habe eine Procedure aus einem Beispiel von der Gr32-Bibliothek abgewandelt, mit der das Drehen ziemlich einfach ist. Dafür musst du die Graphics32 Bibliothek installieren und die
Unit Gr32 in die uses-Liste aufnehmen:
Delphi-Quellcode:
// Src ist das Quellbitmap
// Dst ist das Bitmap, auf das du das Quellbitmap gedreht zeichnen willst
// Angle ist ein Winkel im Bogenmaß (Umrechnung: Gradmaß*pi/180)
// X und Y markieren die Position, an die das Quellbitmap auf das Zielbitmap gemalt wird. (Brauchst du nicht, hab es aber nicht extra geändert. Gib eifnach für Beides 0 an, ich hoffe,d as klappt)
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;
Aufrufen kannst du das so (ungetestet):
Delphi-Quellcode:
var
Bmp32: TBitmap32;
begin
Bmp32 := tBitmap32.Create;
Bmp32.Assign(Image1.Picture.Bitmap);
Rotate(Bmp32,Bmp32,45*pi/180,0,0);
Image1.Picture.Bitmap.Assign(bmp32);
Bmp32.Free;
end;