![]() |
Bild um einen Bestimmten Winkel drehen
Erstmal ein herzliches Hallo in diesem Forum, bin ein Neuling =)
Stehe seit Tagen vor einem entscheidendem Problem: Wie kann ich ein Bild (Bitmap) um einen Bestimmten Winkel drehen? Ist es überhaupt möglich, dies zu schaffen ohne einzelne Pixelwerte abzufragen? Bin für jeden Hinweis sehr dankbar! ps: Es geht hierbei um ein Projekt für die erstellung symmetrischer Ornamente. Dazu brauche ich unbedingt Die Achsen und Punktspiegelungs, sowie die Drehung... |
Re: Bild um einen Bestimmten Winkel drehen
Hallo nano,
zunächst einmal herzlich willkommen im Delphi PRAXIS Forum. Ich hatte vor einiger Zeit auch das Problem und habe es mit der TRotateImage Komponete, die du ![]() |
Re: Bild um einen Bestimmten Winkel drehen
Ebenfalls HERZLICH WILLKOMMEN :party:
Oder falls du mehr machen willst (nicht nur drehen, auch z.B. Transparenz ...) verwende doch ![]() Edit: War von mir etwas kurz ausgedrückt :oops: etwas genauer: Graphics 32 bietet eigene Komponenten als Ersatz für z.B. TImage. Damit kann man z.B. ein Bild über ein anderes legen, jedoch mit teilweise Transparenz (worauf ich mich zuerst beziehen wollte). Es werden auch Möglichkeiten geboten, um Bilder mit Filtern zu vergrößern bzw. zu verkleinern, wodurch man dann beim Vergrößern nicht die einzelnen Pixel erkennen kann. Diese Kompos bieten dann aber noch einige Funktionen mehr... wenn du willst oder Interesse hast, kannst du sie ja einmal ausprobieren. LG, Delphi-Freak |
Re: Bild um einen Bestimmten Winkel drehen
Liste der Anhänge anzeigen (Anzahl: 1)
Vorneweg: Ohne einzelne Pixelmanipulation geht gar nichts.
Dann kommt es darauf an, um welche Winkel du drehen willst. Sollen es nur Vielfache von 90° sein, findest du sicher im Internet Prozeduren fürn ein normales TBitmap. Sollen es auch andere Winkel sein, wird das Ganze schon schwieriger. Es ist sicher immer noch mit den Standardkomponenten von Delphi zu schaffen, allerdings wird das Bitmap danach nicht sehr schön aussehen, wenn du einfach jedem Pixel die Farbe des entsprechenden Pixels zuweist. Der nächster Schritt wäre, die Pixel auch mit Float-Koordinaten anzusprechen, damit ein Pixel, das nach der Drehung "zwischen den echten Pixeln landet", auf alle umgebenden im richtigen Verhältnis "abfärbt". Spätestens hier würde ich allerdings zur ![]() Ich hänge mal eine Demo-Echse der Library an (PixelFS = Floatkoordinaten). [add]Ich bin zu langsam :mrgreen: . Aber das kann man trotzdem stehen lassen, denke ich. [/add] |
Re: Bild um einen Bestimmten Winkel drehen
Dafür hast du's trotz meines Edits besser ausgedrückt und außerdem einen besseren Link :wink:
|
Re: Bild um einen Bestimmten Winkel drehen
vielen Dank für eure Tipps.. Hab heute graphics32 installiert, aber noch nicht getestet... Gibts da vielleicht noch deutsch onlinehilfe dazu?
danke! |
Re: Bild um einen Bestimmten Winkel drehen
Nö :wink: .
Englisch gehört einfach zum Programmieren dazu, da geht (oft) kein Weg vorbei. |
Re: Bild um einen Bestimmten Winkel drehen
dafür gibt es die Funktion PlgBlt
|
Re: Bild um einen Bestimmten Winkel drehen
versuche jetzt in meinem Proggie alle TImage Komponente durch TImage32 zu ersetzen.. Gleich ein Paar Fragen:
1. Wenn das Fenster minimiert oder durch ein anderes überdeckt wird, erlischt das Bild an dieser Stelle.. Wie kann man das vermeiden? 2. Wohin soll man am besten Zeichnen? Aufs Canvas oder Bitmap direkt? 3. Image32.Bitmap.LineTo verlangt nun nach einem neuen Parameter vom typ HDC, was ist das überhaupt? (OnlineHilfe hat mich nicht schlauer gemacht :-/) danke! |
Re: Bild um einen Bestimmten Winkel drehen
Zitat:
Zitat:
Soweit ich das Verstehe, kannst Du immer nur auf Canvas zeichnen. Du kannst aber zwischen TForm.canvas und TBitmap.canvas auswählen. Bei TBitmap32 ist Canvas allerdings für den User transparent, d.h. Du kannst direkt MyBitmap.LineTo(X,Y) aufrufen. Zitat:
Hoffe das hilft mal etwas weiter ... :wink: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:26 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