![]() |
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? |
Re: Image drehen
Schau mal
![]() |
Re: Image drehen
Bei dem Quelltext wird das Image aber nicht gedreht, sondern das gedrehte Picture auf das Formular gezeichnet!
|
Re: Image drehen
Hi!
schau mal bei torry.net, ![]() Da sind einige Komponenten und Routinen dabei. Gruß Pfoto |
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. |
Re: Image drehen
|
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. |
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:
Aufrufen kannst du das so (ungetestet):
// 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;
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; |
Re: Image drehen
Und wie installiert man Graphics32?
|
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 12:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz