Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Image drehen (https://www.delphipraxis.net/95851-image-drehen.html)

TimerTim 14. Jul 2007 08:56


Image drehen
 
Hallo,

wie kann man mit Delphi ein Image drehen?
Ich habe in der Delphi-Praxis schon nach Image drehen, Grafik drehen und Bitmap drehen, und im Internet genau das selbe gesucht, aber trotzdem nichts gefunden: Endweder ich wusste nicht, welchen Teil des Programmes man kopieren muss, es wurde nur erklärt, wie man ein Image um 90 Grad dreht (ich will es aber zum Beispiel auch um 5 Grad drehen), oder es funktionierte nicht.
Kann mir da jemand helfen?

DeddyH 14. Jul 2007 09:09

Re: Image drehen
 
Schau mal hier.

TimerTim 14. Jul 2007 09:22

Re: Image drehen
 
Bei dem Quelltext wird das Image aber nicht gedreht, sondern das gedrehte Picture auf das Formular gezeichnet!

Pfoto 14. Jul 2007 09:34

Re: Image drehen
 
Hi!

schau mal bei torry.net,
ich hier mal eine Suche nach "rotate" gestartet:

Da sind einige Komponenten und Routinen dabei.

Gruß
Pfoto

TimerTim 14. Jul 2007 09:50

Re: Image drehen
 
Wenn ich das dpr öffnen will, kommen bei mir 2 Fehlermeldungen (das ist bei mir oft so, wenn ich ein dpr aus dem Internet öffnen will).
Aber die Unit ist schweibgeschützt, und ich kann sie deshalb nicht kopieren.

Alien426 14. Jul 2007 11:25

Re: Image drehen
 
In Graphics32 gibt es dafür Rotate().

Cx und Cy geben das Zentrum an, Alpha den Winkel.

TimerTim 14. Jul 2007 15:44

Re: Image drehen
 
Hast du nicht gesehen, das ich erst 10 Jahre alt bin?
Mein Vater hat mir erklärt, das man für die Formel eine Matrix verwenden muss, und das man so etwas aber noch nicht mal beim Abitur lernt.
Außerdem haben wir warscheinlich kein Graphics32.

Namenloser 14. Jul 2007 16:44

Re: Image drehen
 
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;

TimerTim 14. Jul 2007 17:30

Re: Image drehen
 
Und wie installiert man Graphics32?

Namenloser 14. Jul 2007 17:45

Re: Image drehen
 
Zuerst lädst du dir die Zip-Datei runter und entpackst sie. In dem entpackten Ordner gibt es den Ordner "Packages", von dem du GR32_D7.dpk öffnest. das musst du dann kompilieren und installieren. Wie letzeres mit Delphi 7 genau geht kann ich dir nicht sagen, weil ich selber kein Delphi7 habe. Wenn du GR32_D7.dpk installiert hast, öffnest du noch GR32_DSGN_D7.dpk (auch im Ordner Packages) und kompilierst und installierst es genau wie das andere Package. Dann müsstest du die Graphics32 eigentlich benutzen können.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz