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 2 von 4     12 34      
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#11

Re: Bild um einen Bestimmten Winkel drehen

  Alt 26. Aug 2005, 18:24
Du solltest entweder aufs Bitmap zeichnen, oder ein Bitmap im Speicher haben, und darauf Zeichnen, und in OnPaint oder so dieses dann auf die PaintBox z.B. zeichnen
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

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

Re: Bild um einen Bestimmten Winkel drehen

  Alt 26. Aug 2005, 18:29
Zitat:
2. Wohin soll man am besten Zeichnen? Aufs Canvas oder Bitmap direkt?
Das Standardverfahren ist eigentlich die OffScreenBitmap-Methode, d.h. ein Bitmap wird im Speicher gehalten und im OnPaint auf die Paintbox kopiert. Mit der GR32-Lib wird aus diesem Soll ein Muss, da nur TBitmap32 die erweiterten Funktionen eben jener bietet. Man kann auch direkt auf den Buffer von TPaintbox32 zeichnen und diesen dann mit TPaintbox32.Flush anzeigen lassen.
Zitat:
3. Image32.Bitmap.LineTo verlangt nun nach einem neuen Parameter vom typ HDC, was ist das überhaupt? (OnlineHilfe hat mich nicht schlauer gemacht :-/)
Irgendetwas machst du falsch :
GR32 Help
TBitmap32.LineTo
procedure LineToS(X, Y: Integer);

procedure LineToTS(X, Y: Integer);

procedure LineToAS(X, Y: Integer);

procedure LineToXS(X, Y: TFixed);

procedure LineToFS(X, Y: Single);

procedure LineToXSP(X, Y: TFixed);

procedure LineToFSP(X, Y: Single);

Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Bitmap

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

Re: Bild um einen Bestimmten Winkel drehen

  Alt 27. Aug 2005, 07:33
Hallo

Ich wollte die Komponenten von Graphic32 für die Entwicklungsumgebung registrieren. Leider schaffe ich das im Moment nicht.
Habe gemäss Hilfe das Bibliotheksverzeichnis gesetzt und bin auf Komponente->Komponente installieren um entsprechendes Paket reinzuholen. Trotzdem werden mir die Icons in der Entwicklungsumgebung nicht angezeigt.
Bin dankbar um jeden Tipp ...
Alex
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

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

Re: Bild um einen Bestimmten Winkel drehen

  Alt 27. Aug 2005, 08:12
Hast du auch das Design-Package ausgewählt, also z.B. GR32_DSGN_D7.dpk?
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Bitmap

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

Re: Bild um einen Bestimmten Winkel drehen

  Alt 27. Aug 2005, 09:10
Danke, hatte nur das Paket GR32_D7.dpk installiert. Nun klappt es!
Alex
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#16

Re: Bild um einen Bestimmten Winkel drehen

  Alt 27. Aug 2005, 09:52
am besten und ganz ohne extra Komponente geht's mit GDI+. Das ganze ist recht schlank und schnell:

http://www.delphi-forum.de/topic_GDI...455e9f5f4b26cc
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

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

Re: Bild um einen Bestimmten Winkel drehen

  Alt 27. Aug 2005, 10:42
Ich habe im Artikel nichts gefunden, kann GDI+
  • Mit Fließkommakoordinaten umgehen (+Anti-Aliasing)?
  • Bitmaps unter Berücksichtigung der Alphakanäle zusamenfügen?
  • Mit Layern umgehen (wichtig: Repaint-Optimisierungen)?
  • PNGs mit Alphakanal abspeichern?
Das wären für mich wichtige Punkte, die ich oft benutze.
Und ich behaupte einfach mal, dass die GR32-Lib schneller als GDI ist .

[add]Ups, langsam wirds etwas OT [/add]
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#18

Re: Bild um einen Bestimmten Winkel drehen

  Alt 27. Aug 2005, 11:20
Hallo,

Zitat von Khabarakh:
Ich habe im Artikel nichts gefunden, kann GDI+
  • Mit Fließkommakoordinaten umgehen (+Anti-Aliasing)?
GDI+ kann (eigentlich) nur Fließkomma.
Zitat von Khabarakh:
  • Bitmaps unter Berücksichtigung der Alphakanäle zusamenfügen?
GDI+ hat immer einen Alphakanal. Also ja.
Zitat von Khabarakh:
Sowas kann GDI+ nicht, lässt sich aber schnell selbst basteln (mehrere Graphikobjekte nehmen und übereinander zeichnen). Optimierungen gibt's da leider keine, aber das kann man sich ja auch selbst basteln, wenn's unbedingt nötig ist.
Ich hab auf Basis von GDI+ eine SVG-Komponente gebastelt. Die zeichnet jeden Layer einzeln über die vorherigen. Ab einer gewissen Größe wird das natürlich etwas langsamer, aber für den Hausgebrauch reicht's.
Zitat von Khabarakh:
  • PNGs mit Alphakanal abspeichern?
Laden und anzeigen funktioniert, speichern sollte auch gehen (hab ich nicht ausprobiert).
Zitat von Khabarakh:
Das wären für mich wichtige Punkte, die ich oft benutze.
Und ich behaupte einfach mal, dass die GR32-Lib schneller als GDI ist .
Wir sprechen hier von GDI+. Ist zwar nicht hardwarebeschleunigt (wollte MS mal machen, aber jetzt kommt ja Avalon).
Ich denke schon, dass MS hier hochoptimierte Routinen geschrieben hat, schliesslich läuft das ganze moderne XP-Zeug drauf (Transparenz, Schriftenglättung...).

Gruß
xaromz
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

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

Re: Bild um einen Bestimmten Winkel drehen

  Alt 27. Aug 2005, 12:33
Super ! Bisher habe ich auf eine Umsetzung der GR32-Lib für .Net gewartet, bevor ich mich richtig mit C# beschäftige, aber jetzt muss ich mir wohl GDI mal genauer anschauen .

Zum Thema Geschwindigkeit: Ich bleibe bei meiner Behauptung . GR32 besteht aus sehr viel Assmebler, benutzt SSE und MMX, die Pixel können direkt über Pointer angesprochen werden, ... Das kann eigentlich nur noch mit Hardwarebeschleunigung schneller gehen.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von nano
nano

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

Re: Bild um einen Bestimmten Winkel drehen

  Alt 28. Aug 2005, 11:52
Hallo Leute =)

Erstmal danke für die aktive Beantwortung meiner Fragen... Hab jetzt endgültig GR32 Komponente in mein Programm eingebaut und werde aus diesem Grund auch nicht auf PaintBox oder andere Komponente umsteigen. Jetzt zeichne ich direckt aufs Bitmap von Image32 bzw. einem Layer.. Und da kommt gleich das nächste Problem.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  with Img do
  begin
    Layers.Clear;
    Scale := 1;
    Bitmap.SetSize(150, 150);
    Bitmap.Clear(clGreen32);
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var BL: TBitmapLayer;
begin
BL := TBitmapLayer(Img.Layers.Add(TBitmapLayer));


with BL.Bitmap do
begin
    bl.Bitmap.SetSize(150,150);
    bl.Bitmap.DrawMode := dmBlend;

    PenColor:= clRed32;
    MoveTo(3,3);
    LineToS(150,150);

    Bl.Scaled:= true;

end;

end;
Wie ihr sehen könnt, erstellt die erste Prozedur ein Bitmap auf der Komponente.
Die zweite Prozedur ist dafür zuständig, dass ein Layer erstellt und gezeichnet wird.

Eigentlich ist die Größe des Image32.Bitmaps und des Layers gleich, trotzdem wird das Bitmap vom Layer kleiner gezeichnet, und zwar so:
http://inflicted.de/tmp/delphi.gif



obwohl die Linie bis ganz unten rechts gehen sollte...

Was mache ich falsch?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 07:54 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