AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Gamma-Korrektur von Bild
Thema durchsuchen
Ansicht
Themen-Optionen

Gamma-Korrektur von Bild

Ein Thema von DerAndereMicha · begonnen am 8. Jul 2008 · letzter Beitrag vom 8. Jul 2008
Antwort Antwort
Benutzerbild von DerAndereMicha
DerAndereMicha

Registriert seit: 1. Jul 2004
Ort: Berlin
208 Beiträge
 
Delphi 2007 Enterprise
 
#1

Gamma-Korrektur von Bild

  Alt 8. Jul 2008, 13:18
Hallo Zusammen,

kennt von Euch jemand ne Routine, mit der ich auch einfache und schnelle Art und Weise den Gamma-Wert eines Bildes (TBitmap,TJPEGImage,...) ändern kann?

Hab schon überall danach gesucht, aber bisher nur Sachen gefunden, die sich auf den ganzen Monitor beziehen.

Gruß
Micha
Der Weg ist das Ziel...
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Gamma-Korrektur von Bild

  Alt 8. Jul 2008, 15:01
Eine Gammakorrektur ist im Grunde nichts weiter, als die Formel "Farbe^Gamma", wobei Farbe die jeweiligen Anteile (RGB) sind, auf einen Bereich von 0..1 skaliert.

Delphi-Quellcode:
var
  c1, c2: TColor;
  Gamma: Double;
begin
  Gamma := 1.2;
  c2 := rgb(
    trunc(Power((RedComponent(c1)/255), Gamma)*255),
    trunc(Power((GreenComponent(c1)/255), Gamma)*255),
    trunc(Power((BlueComponent(c1)/255), Gamma)*255));
Und das dann für jeden Pixel.


Eine andere, wie ich finde aber sauberere Methode ist es, wenn man den Gammawert für die Helligkeit ändert. Dafür müsstest du dann die Farben zunächst in das HSB-Farbmodell umrechnen, die Helligkeitskomponente auf 0..1 skalieren, Gammakorrektur machen, zurückskalieren, und wieder in RGB zurückrechnen. Oben geschriebenes dürfte aber die Methode sein, die fast immer eingesetzt wird.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von DerAndereMicha
DerAndereMicha

Registriert seit: 1. Jul 2004
Ort: Berlin
208 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Gamma-Korrektur von Bild

  Alt 8. Jul 2008, 15:35
Hallo Medium,

vielen Dank erstmal. Aber hier gleich noch 2 Fragen dazu:

1. Frage: Die Funktionen RedComponent,GreenComponent und BlueComponent kennt
mein Delphi leider nicht. Kann ich statt dessen auch GetRValue,GetGValue und GetBValue nehmen ?

2.Frage: Ist das Ganze nicht ziemlich langsam - weil ja pixelweise?

Gruß
Micha
Der Weg ist das Ziel...
  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 03:00 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