AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Image32: Bild rotieren / drehen
Thema durchsuchen
Ansicht
Themen-Optionen

Image32: Bild rotieren / drehen

Ein Thema von nano · begonnen am 25. Dez 2005 · letzter Beitrag vom 25. Dez 2005
Antwort Antwort
Benutzerbild von nano
nano

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

Image32: Bild rotieren / drehen

  Alt 25. Dez 2005, 14:11
Hallo! =)


Hab ein kleines Graphic-Programm und benutze dabei Image32 Komponente als Zeichenfeld. Diese beinhaltet mehrere Ebenen (Layers).

Problem: Ich möchte das Bild um den Mittelpunkt rotieren lassen und komm da nicht zurecht.

Hab das Beispiel, das mit der Komponente mitgeliefert wird, komplett auf mein Programm übertragen und zwar
- Man erstellt eine Neue Image32 Komponente (nennen wir sie mal TEST)
- Der Inhalt vom Zeichenfeld wird gedrecht und in TEST eingezeichnet

Ergebnis: Man sieht da zwar schon, das was gedreht wird, aber die gedrehte Fläche ist weis, das heißt, dass die Ebenen von dem Zeichenfeld wurden gar nicht berücksichtigt!


Wie soll ich denn da vorgehen? Mein Ziel ist nähmlich, dass ich das komplette Bild um Mittelpunkt drehe und alle Ebenen beibehalte (schließlich wird ja da noch weitergezeichnet). Wie kann man das realisieren ohne TEST-Komponente einzuführen, sonder einfach nur den Inhalt der Zeichenfläche samt Ebenen drehen!

Bin schon am Verzweifeln (es handelt sich um eine Facharbeit fürs Abi)
i n f l i c t e d . d e
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Image32: Bild rotieren / drehen

  Alt 25. Dez 2005, 15:31
Transform() arbeitet ja lediglich mit TBitmap32 als Parameter. Layer sind jedoch keine Eigenschaft eines Bitmaps, sondern eines TImage32. Das heisst, dass du wohl sämtliche Layer separat drehen musst. Das dürfte jedoch nicht allzu kompliziert sein, da du ja die selbe TAffineTransformation dafür nehmen kannst. Sprich: Einfach das Image32.Bitmap drehen, und dann genau so auch über alle Layer iterieren.

Gruss,
Fabian
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von nano
nano

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

Re: Image32: Bild rotieren / drehen

  Alt 25. Dez 2005, 16:02
hmmm...

aber dann meldet Delphi "Unkompatible Typen" :-/


ps: Nebenbei, wie ist es dann beim Speichern? Ich bin zwar nicht soweit, aber ist es dann auch so umständlich, wenn man einfach alle Layers als Datei speichern will?
i n f l i c t e d . d e
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Image32: Bild rotieren / drehen

  Alt 25. Dez 2005, 17:19
Zitat von nano:
aber dann meldet Delphi "Unkompatible Typen" :-/
Ohne Code leider eine völlig wertlose Info

Zitat von nano:
ps: Nebenbei, wie ist es dann beim Speichern? Ich bin zwar nicht soweit, aber ist es dann auch so umständlich, wenn man einfach alle Layers als Datei speichern will?
Du musst imho zunächst mit TBitmap.Draw{To}() alle Layer einzeln auf das Bitmap zeichnen bevor sie mit gespeichert werden. Wenn du die Layer getrennt haben möchtest, dann musst du das Hintergrundbitmap sowie jedes einzelne Layer in ein eigenes Bitmap speichern, da BMP schlicht keine Ebenen vorsieht. Beim Laden natürlich dann auch wieder die Layer einzeln aus den Bilddateien rekonstruieren.
Zudem wird es vermutlich nötig sein den Alphakanal der Layer zusätzlich als separates Bitmap für jeden Layer zu speichern, da BMP auch keine Alphakanäle an sich unterstützt. Es kann jedoch auch sein, dass diese Info in einem 32-Bit .bmp erhalten bleibt, da das nötige Byte ja an und für sich vorhanden ist. Ich würds daher erstmal einfach so probieren =)
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  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:37 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