AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Image drehen

Ein Thema von TimerTim · begonnen am 14. Jul 2007 · letzter Beitrag vom 1. Aug 2007
Antwort Antwort
TimerTim

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

Re: Image drehen

  Alt 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!!!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:31 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