Registriert seit: 17. Jun 2007
Ort: Petershagen
66 Beiträge
Delphi 7 Personal
|
Re: Image drehen
27. Jul 2007, 10:01
Meinst du etwa das hier?
Zitat von NamenLozer:
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;
Ich kann Graphics32 aber nicht downloaden:
Zitat von TimerTim:
Hallo,
wenn ich die Datei öffne, erscheint eine Fehlermeldung, und wenn ich sie kompiliere, zeigt Delphi an:
[Fataler Fehler]GR32_D7.dpk[51]: Datei nicht gefunden: 'GR32.dcu'.
(Sorry, dass das Antworten so lange gedauert hat, ich war letzte Woche im Urlaub.)
Zitat von Blackheart:
Auf der Seite war ich auch schon, aber ich weiß nicht, welchen Teil des Quelltextes ich kopieren muss.
Meine Homepage: www.tim.niepoetter.com
Neu auf meiner Homepage: Programmieren, Mathematik, Lolliges, Blog, Sonstiges
Bitte schreibt etwas ins Gästebuch!!!
|