AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia GDI, GDI+ oder doch Direct2D?
Thema durchsuchen
Ansicht
Themen-Optionen

GDI, GDI+ oder doch Direct2D?

Ein Thema von Jazzman_Marburg · begonnen am 12. Mai 2011 · letzter Beitrag vom 6. Nov 2022
 
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#1

GDI, GDI+ oder doch Direct2D?

  Alt 12. Mai 2011, 11:10
Hallo Graphik-Experten!
Irgendwie komme ich gedanklich an folgender Frage nicht weiter -- und das große Internet hat mich jetzt mehr verwirrt als das es geholfen hat. Mein Anliegen:
Die Applikation soll
  • Grafiken (BMP, JPG oder PNG) laden
  • sie anzeigen
  • User kann die Farbe der Grafik ändern können
  • die Grafik soll im Ursprungstyp (BMP, JPG oder PNG) gespeichert werden.
Jetzt dachte ich, ich erstelle für jeden Grafik-Typ ein entsprechendes Objekt:
  • if graphtype = 'PNG' then myGraph := TPngImage.Create;
  • if graphtype = 'BMP' then myGraph := TBitmap.Create;
  • if graphtype = 'JPG' then myGraph := TJpeg.Create;
Für das Anzeigen der Grafik, dachte ich, muß ich die Grafik einem TImage übergeben:
  • bmp := TBitmap.Create;
  • bmp.width := myGraph.width;
  • bmp.height:= myGraph.height;
  • bmp.canvas.draw(myGraph,0,0);
Nach der Änderung durch den User, speicher ich die Grafik wieder im Ursprungs-Typ:
  • myGraphOut : TGraphics
  • myGraphOut.width := bmp.width;
  • myGraphOut.canvas.draw(bmp);
  • myGraphOut.savetofile(whatever)

Jetzt kommen wir zum Casus-Knacktus:
Wenn ich doch intern Alles, was da kommt in ein BMP verwandle, dann habe ich doch mindestens das Problem, dass z.B. der Alpha-Channel des PNG futsch ist. Das kann also nicht das gelbe vom Ei sein.
Zugegebenermaßen, habe ich in der EmBa-Newsgroup eine hähnliche Frage gestellt, und dort wurde mir dann GDI+ empfohlen. Ich kenne mich GDI+ nicht aus, aber wieso sollte das die Lösung sein?
Und vor allem: Die Applikation soll nur auf Win7 laufen -- dann könnte ich ja gleich Direct2D nutzen, oder?

Das alles klingt vielleicht komplizierter als es vielleicht wirklich ist (anzeigen, ändern, speichern) -- aber ich bin nun wirklich verwirrt, was ein gangbarer Weg zu dieser kleinen Applikation ist.

Könnt ihr helfen?

Vielen Dank
Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
 


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 00:46 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