Thema: Image drehen

Einzelnen Beitrag anzeigen

TimerTim

Registriert seit: 17. Jun 2007
Ort: Petershagen
66 Beiträge
 
Delphi 7 Personal
 
#21

Re: Image drehen

  Alt 27. Jul 2007, 09: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!!!
  Mit Zitat antworten Zitat