AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bild um einen Bestimmten Winkel drehen
Thema durchsuchen
Ansicht
Themen-Optionen

Bild um einen Bestimmten Winkel drehen

Ein Thema von nano · begonnen am 22. Aug 2005 · letzter Beitrag vom 30. Aug 2005
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von nano
nano

Registriert seit: 22. Aug 2005
Ort: Deggendorf
51 Beiträge
 
Delphi 7 Enterprise
 
#1

Bild um einen Bestimmten Winkel drehen

  Alt 22. Aug 2005, 20:43
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...
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Bild um einen Bestimmten Winkel drehen

  Alt 22. Aug 2005, 20:57
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 hier findest gelöst. Ist eine gute Komponente und Freeware.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Freak
Delphi-Freak

Registriert seit: 26. Sep 2004
Ort: Wien Nähe (Österreich)
321 Beiträge
 
Delphi 2006 Architect
 
#3

Re: Bild um einen Bestimmten Winkel drehen

  Alt 22. Aug 2005, 21:06
Ebenfalls HERZLICH WILLKOMMEN

Oder falls du mehr machen willst (nicht nur drehen, auch z.B. Transparenz ...) verwende doch Graphics32

Edit: War von mir etwas kurz ausgedrückt
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
Gerhard Pfister
*
»To him who loves us and has freed us from our sins by his blood [...] be glory and power for ever and ever! Amen.« (Revelation*1,*5?6)
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: Bild um einen Bestimmten Winkel drehen

  Alt 22. Aug 2005, 21:10
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 GR32-Lib greifen, die dies, große Performanceschübe, Alphatransparenz und vieles mehr bietet.
Ich hänge mal eine Demo-Echse der Library an (PixelFS = Floatkoordinaten).

[add]Ich bin zu langsam . Aber das kann man trotzdem stehen lassen, denke ich. [/add]
Angehängte Dateien
Dateityp: exe pixelf_ex_206.exe (745,0 KB, 44x aufgerufen)
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Freak
Delphi-Freak

Registriert seit: 26. Sep 2004
Ort: Wien Nähe (Österreich)
321 Beiträge
 
Delphi 2006 Architect
 
#5

Re: Bild um einen Bestimmten Winkel drehen

  Alt 22. Aug 2005, 21:15
Dafür hast du's trotz meines Edits besser ausgedrückt und außerdem einen besseren Link
Gerhard Pfister
*
»To him who loves us and has freed us from our sins by his blood [...] be glory and power for ever and ever! Amen.« (Revelation*1,*5?6)
  Mit Zitat antworten Zitat
Benutzerbild von nano
nano

Registriert seit: 22. Aug 2005
Ort: Deggendorf
51 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Bild um einen Bestimmten Winkel drehen

  Alt 23. Aug 2005, 22:44
vielen Dank für eure Tipps.. Hab heute graphics32 installiert, aber noch nicht getestet... Gibts da vielleicht noch deutsch onlinehilfe dazu?

danke!
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#7

Re: Bild um einen Bestimmten Winkel drehen

  Alt 23. Aug 2005, 22:58
.
Englisch gehört einfach zum Programmieren dazu, da geht (oft) kein Weg vorbei.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Bild um einen Bestimmten Winkel drehen

  Alt 23. Aug 2005, 23:47
dafür gibt es die Funktion PlgBlt
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von nano
nano

Registriert seit: 22. Aug 2005
Ort: Deggendorf
51 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Bild um einen Bestimmten Winkel drehen

  Alt 24. Aug 2005, 14:22
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!
  Mit Zitat antworten Zitat
Bitmap

Registriert seit: 25. Aug 2005
Ort: Arth
10 Beiträge
 
Delphi 7 Professional
 
#10

Re: Bild um einen Bestimmten Winkel drehen

  Alt 26. Aug 2005, 18:57
Zitat:
1. Wenn das Fenster minimiert oder durch ein anderes überdeckt wird, erlischt das Bild an dieser Stelle.. Wie kann man das vermeiden?
Um das zu verhindern, sollten sämtliche Zeichenoperationen zum Event OnPaint (z.B. von TForm oder TPaintBox) erfolgen. Dieses wird bei einer Überdeckung, etc. aufgerufen. Windows kümmert sich darum, dass nur der überdeckte Bereich neu gezeichnet wird, so dass nicht das ganze Bild neu aufgebaut werden muss.

Zitat:
2. Wohin soll man am besten Zeichnen? Aufs Canvas oder Bitmap direkt?
Das kommt darauf an, was Du zeichnen möchtest. Ich verwende meistens ein TPaintBox Objekt um darin zu zeichnen.
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:
3. Image32.Bitmap.LineTo verlangt nun nach einem neuen Parameter vom typ HDC, was ist das überhaupt? (OnlineHilfe hat mich nicht schlauer gemacht :-/)
Alle Möglichkeiten von LineTo haben bei mir immer nur die Parameter (X,Y:integer). HDC ist normalerweise ein Windows Handle wie es beim initieren von TBitmap erzeugt und zurückgegeben wird. Kann es sein, dass bei Dir dieser Schritt irgenwie nicht berücksichtig wurde?

Hoffe das hilft mal etwas weiter ...
Alex
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 09:22 Uhr.
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